我尝试理解以下代码片段,但是我对"\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);
char *pStr = "\0";
我猜这不是你想要的。你声明了一个指针并在其中写入了一些内容。那将是它所指向的地址。在那里使用malloc
,之后填充分配的内存。或者你可以在那里使用字符数组。 - Kami Kazechar *pStr = "\0";
不是你想的那样。它声明了一个指针,其值是包含两个空字节的字符串文字的地址。不需要使用 malloc 来正确执行。 - Jean-Baptiste Yunès