处理这段代码,但出于某种原因,它会一直崩溃。
任何人都知道我做错了什么
char *str;
printf("Enter a string\n");
gets(str);
printf("The size of the string is %d", strlen(str));
system("PAUSE");
return 0;
答案 0 :(得分:3)
您尚未为str
分配任何内存。声明缓冲区,例如char str[50]
,但请注意buffer overflows。
答案 1 :(得分:1)
你只创建了一个char *指针,指向内存中的随机空间,你尝试用它做一些事情 - 这就是你的程序崩溃的原因。
你应该创建一个chars数组:
char str[50];
或使用malloc:
为字符串动态分配内存char* str;
str = (char *)malloc(50*sizeof(char)); // allocate memory
// some operations
free(str); // deallocate memory
其中50是您估计的缓冲区大小。