【发布时间】:2021-07-30 19:58:44
【问题描述】:
我的程序应该打印出“Not found”而不是“Segmentation fault”,这是怎么回事?
这是我的代码
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
string names[] = {"Bill", "Charlie", "Fred", "George", "Ginny", "Percy", "Ron"};
for (int i = 0; 1 < 7; i++)
{
if(strcmp(names[i], "Angle") == 0 )
{
printf("Found\n");
return 0;
}
}
printf("Not found\n");
return 1;
}
我用 make 编译了程序,当我运行它时,我得到了“Segmentation fault”。好迷茫……
【问题讨论】:
-
提示:您在
for (int i = 0; 1 < 7; i++)中有错字,导致它变成无限循环。当您读取names数组的末尾时,您会因分段错误而崩溃。 -
1 < 7- 这就是为什么不建议将i用于变量的原因。 -
@EugeneSh。祝整个行业停止运转。
-
@Barmar 可以从自己做起。
ii工作正常 -
请在以后的问题中添加
cs50标签(在您的课程中)。