我正在处理这段代码,我尝试从链接列表中删除项目,但我不明白那个错误是什么。错误是未在此范围内声明 delnode。我构建了 eclipse 和 visual studio,但错误仍然存在。
char name[10];
void delnode(char name[], NODEPTR *head)
{
NODEPTR save, prev;
prev=*head;
save=prev->n;
while (save!=*head && strcmp(name ,save->info)>0)
{
prev = save;
save = save->n;
}
if (save==*head || strcmp(name,save->info)<0) printf("%s Not found",name);
else
{
if (prev->n==*head) *head=prev;
prev->n = save->n;
free(save);
}
}
int main()
{
printf("Write a name to delete it");
scanf("%s",&name);
delnode(name, head); //Error delnode was not declared in this scope
}
加法; 伙计们,感谢您的帮助,现在它给出了这个错误;
这条线有多个标记
- Invalid arguments ' Candidates are: void delnode(char *, node * *) '
- cannot convert ‘NODEPTR {aka node*}’ to ‘node**’ for argument ‘2’ to ‘void delnode(char*,
node**)’
- Line breakpoint: lab.cpp [line: 87]
第 87 行
最佳答案
使用前需要提供delnode
的声明:
void delnode(char name[], NODEPTR *head); // declaration
char name[10];
int main()
{
// as before
}
void delnode(char name[], NODEPTR *head)
{
// as before
}
修复之后,你还需要在 main
中修复这一行:
delnode(name, head);
此时,head
还没有声明。
关于c++ - was not declared in this scope 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910394/