我對 C 很陌生,我正在學習使用結構和指標,但我似乎無法弄清楚我在這里做錯了什么。所以我試圖找到每次呼叫 main 函式時都會重置的字典的大小。當我嘗試手動運行代碼時,它會說分段錯誤。測驗了 2 個檔案,一個是字典結構和所有函式,一個是 main.c 檔案。任何幫助將不勝感激。
我在 dict 檔案中的代碼:
size_t dict_size (const dict_t* dict) {
dict_list_t* el = dict->head;
size_t dict_ct = 0;
while(el){
dict_ct ;
el = el->next;
}
return dict_ct;
}
和主檔案中的代碼:
else if(strncmp(cmd, "siz", 3) == 0) {
size_t* size =(size_t*) dict_size(dict);
printf("%ld\n", *size);
}
uj5u.com熱心網友回復:
dict_size
回傳 a size_t
,而不是 a size_t*
。所以在這里使用指標是錯誤的。
你要這個:
if(strncmp(cmd, "siz", 3) == 0) {
size_t size = dict_size(dict);
printf("%zu\n", size);
}
獎金:
像您一樣計算字典大小是低效的。每次添加新條目和洗掉條目時都應更新字典大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/318814.html
下一篇:返回列表