我正在做作业,当我进入“项目属性”页面下时,请进行调试,并使用命令自变量运行程序。如果我尝试将命令提示符与适当的输入配合使用,它将无法正常工作,并向我抛出异常。
void byName(char *name) {
read();
element_t *e = top;
while (strcmp(e->name, name) != 0) {//throws an exception
e = e->next;
}
if (e == NULL) {
printf("Error: element not found");
}
else {
list(e);
}
}
我不了解它如何在Visual Studio中运行并且不会引发异常,而同时无法通过命令提示符运行。它应该要么双向抛出异常,要么不双向抛出异常,对吗?
答案 0 :(得分:1)
在此循环中
while (strcmp(e->name, name) != 0) {//throws an exception
e = e->next;
}
如果name
与列表中的任何元素都不匹配,您将永远继续下去。因此,您将到达列表的末尾,并在其值为NULL时使用e
。
更改循环,使其在e
变为NULL时停止。喜欢:
while (e != NULL && strcmp(e->name, name) != 0) {//throws an exception
e = e->next;
}