【发布时间】:2015-12-02 02:19:11
【问题描述】:
几个小时以来,我一直试图找出这个分段错误。每次我使用 char* find 时都会出现段错误。
char* find = malloc(sizeof(char) * 20);
displayMatrix(rowcol, matrix);
// (Don't mind that ^^^)
printf("Enter a word to find in the puzzle : \n");
scanf("%s", &find);
tolower(find);
len = strlen(find) + 1;
当我运行程序时,它会立即出现错误
len = strlen(find) + 1
有人知道它为什么这样做吗?提前致谢。
【问题讨论】:
-
因为您可能打算使用
scanf("%s", find);。 -
tolower()不能这样工作。要么禁用编译器警告,要么忽略它们。sizeof(char) != 1是不可能的,所以不要使用它。 -
天哪。我一直没有使用 -Wall 。感谢您指出这一点。
-
在
printf("Here!\n");的scanf、tolower和len之间进行调试打印,然后查看代码实际失败的位置。
标签: c pointers segmentation-fault