Как убрать эти предупреждения при стирании строки c - PullRequest
1 голос
/ 31 мая 2010

Как я могу удалить эти предупреждения?

   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 ]

2 голосов
/ 31 мая 2010
   int k;
   for (k = 0; foo[k] != '\0'; k++)
       msg2[k] = '\0';

Назначить целое число целочисленной переменной вместо указателя. NULL - указатель Обычно определяется как:

((void *) 0)
1 голос
/ 31 мая 2010
*foo = 0;

Чтобы «стереть» строку стиля C, все, что вам нужно сделать, это установить первый байт в 0.

1 голос
/ 31 мая 2010

Предупреждение верно, использование NULL неверно.

NULL был предназначен для указателей, а не для строкового nul-terminator.

Используйте ноль вместо NULL в вашем коде, в ОБАХ местах. Если вам нужен специальный ноль, вы можете использовать '\ 0', но это излишне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...