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);