我一直试图找出这个分段故障几个小时。每次我使用char *发现我都会遇到一个seg错误。
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
任何人都知道为什么这样做?提前谢谢。
答案 0 :(得分:0)
scanf("%s", &find);
应该是scanf("%s", find);
find
已经是字符串的地址。
和tolower
也不正确:int tolower ( int c );
而非int tolower ( char *c );
答案 1 :(得分:0)
其他方法是指向使用const char *
的字符串文字并将其余代码更改为:
const char* find = (char*) malloc(sizeof(char)*20);
printf("Enter a word to find in the puzzle : \n");
scanf("%s", find);
printf("find says : I have got this saved under me %s \n", find); //just tried checking if it works
tolower(find); //this surely needs some correction,determine what you want
int len = strlen(find); //you won't require +1 using strlen
printf("%d : It Works Fine.",len);