根据编译器,函数listLength()不在此范围内声明。但是它是在main()函数之前声明的。
即使我查看了其他人的问题,也看不到该函数有什么问题。
代码有什么问题?
/* ... */
int listLenght(node* head){
node *temp = head;
int length;
while(temp->next != NULL){
length++;
temp = temp->next;
}
return length/2;
}
void createList(int length, node *head){
node *temp = head;
for(int i = 0; i < length; i++){
temp->next = (node*) malloc(sizeof(node));
temp->data = i;
temp = temp->next;
temp->next = NULL;
}
}
...
int main(){
node *head = (node*) malloc(sizeof(node));
createList(5, head);
int a = listLength(head);
}
最佳答案
未定义listLength()
。listLenght()
是。
首先相信编译器,或者尝试证明它是错误的,这样容易发现这种小错误。
即搜索“listLength”,然后看它是否在您的代码中……除了编译器抱怨的调用之外,没有其他地方。
或者(由Martin James很好地输入),反过来说,采用编译器抱怨的“ undefined symbol ”,并将其粘贴到“明显相同”定义的位置。 “这使问题得以解决的频率令人惊讶,”(马丁和我完全同意的话)。如果确实有帮助,则存在一些微小的差异(甚至三次)。
'1'(数字),
'l'(小写字母'L'),
'I'(大写字母'i')
在某些字体中可能非常相似。
关于c - 错误 “Function was not declared in this scope”,即使它是,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49967703/