如何删除这些警告?
char foo[10], msg2[100];
int k;
for (k = 0; foo[k] != NULL; k++) //comparison between pointer and integer
msg2[k] = NULL; //assignment makes integer from pointer without a cast
感谢。
答案 0 :(得分:2)
int k;
for (k = 0; foo[k] != '\0'; k++)
msg2[k] = '\0';
将整数分配给整数变量,而不是指针。 NULL是一个指针。它通常定义为:
((void *) 0)
答案 1 :(得分:1)
警告是正确的,你对NULL的使用是错误的。
NULL表示指针,而不是字符串nul-terminator。
在代码中使用零而不是NULL,在两个地方。 如果你想要一个特殊的零,你可以使用'\ 0',但那是多余的。
答案 2 :(得分:1)
*foo = 0;
要“删除”C样式字符串,您只需将第一个字节设置为0。