[英]strlen code not working
處理這段小代碼,但由於某種原因,它一直崩潰。
任何人都知道我在做什么錯
char *str;
printf("Enter a string\n");
gets(str);
printf("The size of the string is %d", strlen(str));
system("PAUSE");
return 0;
您尚未為str
分配任何內存。 聲明一個緩沖區,例如char str[50]
,但要注意緩沖區溢出 。
您僅創建了一個char *指針,該指針指向內存中的隨機空間,然后嘗試對其進行處理-這就是程序崩潰的原因。
您應該創建一個字符數組:
char str[50];
或使用malloc為字符串動態分配內存:
char* str;
str = (char *)malloc(50*sizeof(char)); // allocate memory
// some operations
free(str); // deallocate memory
其中50是您估計的緩沖區大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.