C 使用qsort对结构数组进行排序
输出:C 使用qsort对结构数组进行排序,c,arrays,file,qsort,C,Arrays,File,Qsort,输出: zero one two zero three three (请注意,排序后零丢失)这是: Before: zero one two three After: one two three 是错误的,array不是int的数组,而是Wordy的数组。当您将错误的元素大小指定给qsort()时,结果或多或少是随机的,因为您将得到指向Wordy结构数组的int大小的“切片”的指针 尝试: 是因为您的printf语句不同吗word和charArray顺序不同 之前: 数组[0]。字符
zero one
two zero
three three
(请注意,排序后零丢失)这是:
Before: zero one two three
After: one two three
是错误的,array
不是int
的数组,而是Wordy
的数组。当您将错误的元素大小指定给qsort()
时,结果或多或少是随机的,因为您将得到指向Wordy
结构数组的int
大小的“切片”的指针
尝试:
是因为您的
printf
语句不同吗word
和charArray
顺序不同
之前:
数组[0]。字符数组,数组[1]。word,数组[2]。字符数组,数组[3]。字符数组)
之后:
数组[0]。字,数组[1]。字符数组,数组[2]。字符数组,数组[3]。字符数组) 您引用了
array[1]。word
和array[0]。word
但是Wordy
没有名为word
的成员,是否编译?
Before: zero one two three
After: one two three
qsort(array, i, sizeof(int), comparing);
qsort(array, i, sizeof array[0], comparing);