我遇到了一個函數的問題,它打算在列表的末尾添加一個節點。它似乎工作正常() 問題是:當我在野牛文件中調用此函數後,我有一個分段錯誤。調試器明確指出錯誤來自該函數。 當我編譯瓦特/ -Wall -Werror我遇到錯誤control reaches end of non-void function [-Werror=return-type]
C編程控制達到非空/分段故障的結束
這裏是我的功能:
int addNode(Node *n, list List) {
list *pList = (list *)malloc(sizeof(list));
*pList = List;
if (List == NULL) {
List = n;
} else {
while (((*pList)->next) != NULL) {
pList = &((*pList)->next);
}
(*pList)->next = n;
return (0);
}
}
我看到另一個線程的返回INTreturn(0);
代替無效最後可以解決這個錯誤,但在我的情況下它不起作用。 如果有人有一絲 提前感謝
'列表* PLIST =(列表*)malloc的(的sizeof(列表)); * pList = List;'這條線對我來說沒有意義。無論如何,你只在'else'部分返回'0'。 – Sadique
如果'next'是一個指針,在'pList =&((* pList) - > next);'&符號是多餘的並導致錯誤。 – Arashium
什麼是'list'?你知道指針是什麼嗎? – hyde