簡體   English   中英

奇怪的代碼不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM