【发布时间】:2022-01-23 01:25:30
【问题描述】:
假设我有一个struct Sentence 和一个struct Text。如何在capital_letters_quant 上实现 qsort?怎么写出同样的比较函数?
struct Sentence {
wchar_t* sentence_text;
size_t sentence_size;
bool is_sentence_anagram;
int64_t capital_letters_quant;
};
struct Text {
struct Sentence* full_text;
size_t full_text_size;
};
所以,我尝试将比较函数的参数更改为 struct Sentence *,但是编译器给出了警告或错误,我不想接收它们,老实说......
这是我的尝试
int second_compare(const void* first_current_sentence, const void* second_current_sentence) {
return ((struct Sentence*)second_current_sentence -> capital_letters_quant) - ((struct Sentence*)first_current_sentence -> capital_letters_quant);
}
但是 gcc 把这个发给我
错误:“second_compare”的类型冲突;有'int(const void *, const void *)'
注意:先前声明的“second_compare”类型为“int(struct Sentence *, struct Sentence *)”
警告:取消引用'void *'指针
错误:在非结构或联合的情况下请求成员“capital_letters_quant”
错误:在非结构或联合的情况下请求成员“capital_letters_quant”
【问题讨论】:
-
所以,我尝试将 compare 函数的参数更改为 struct Sentence *,但编译器给出了警告或错误,老实说,我不想接收它们...
-
请edit您的问题添加信息,不要为此目的使用cmets。显示您尝试实现比较功能并复制和粘贴错误消息。这有帮助吗:stackoverflow.com/q/43100263/10622916
-
K,我似乎做了所有事情,正如我被告知的那样,我是否正确地提出了这个问题?
-
您没有显示相关代码...从错误中可以明显看出
标签: arrays c struct qsort wchar-t