如何在删除c字符串时删除这些警告

时间:2010-05-31 16:33:29

标签: c warnings

如何删除这些警告?

   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

感谢。

3 个答案:

答案 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。