命令提示符与通过调试传递命令参数

时间:2019-04-24 04:57:40

标签: c visual-studio

我正在做作业,当我进入“项目属性”页面下时,请进行调试,并使用命令自变量运行程序。如果我尝试将命令提示符与适当的输入配合使用,它将无法正常工作,并向我抛出异常。

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中运行并且不会引发异常,而同时无法通过命令提示符运行。它应该要么双向抛出异常,要么不双向抛出异常,对吗?

1 个答案:

答案 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;
}