我试图理解下面的代码,但是我"\0"
和之间感到困惑'\0'
。我知道它很愚蠢,但是请帮我
#define MAX_HISTORY 20
char *pStr = "\0";
for(x=0;x<MAX_HISTORY;x++){
str_temp = (char *)malloc((strlen(pStr)+1)*sizeof(char));
if (str_temp=='\0'){
return 1;
}
memset(str_temp, '\0', strlen(pStr) );
strcpy(str_temp, pStr);
双引号创建字符串文字。"\0"
包含单个字符的字符串文字也是如此'\0'
,外加第二个字符作为终止符。写空字符串""
是一种愚蠢的方式(这是惯用的方式)。
单引号是字符文字,所以'\0'
是一个int
表示为0的编码值的字符尺度的值。
代码中的Nits:
malloc()
C中的返回值。sizeof (char)
,始终为1,因此不会增加任何值。NULL
通常应与之进行比较。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句