C Linux Предупреждение: присваивание делает целое число из указателя без приведения - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть функция C linux, которая имеет следующий код:

void A (char *s1, char *s2)
{
...
*s2 = NULL;
...
}

в этой функции я помещаю значения в s2, а в конце ставлю NULL.

код:

*s2 = NULL

генерирует следующее предупреждение: присваивание делает целое число из указателя без приведения

Я хочу исправить свой код, как я могу это сделать?

спасибо

Ответы [ 3 ]

5 голосов
/ 13 ноября 2011

Похоже, что в вашей системе NULL определено как (void *)0.Это означает, что ваше назначение выполняет именно то, что говорит предупреждение - создание целого числа из указателя без приведения.Вы все равно не хотите помещать NULL в переменную char - вы, вероятно, ищете:

*s2 = '\0';
2 голосов
/ 13 ноября 2011

Я думаю, вы имеете в виду нулевой символ , а не указатель NULL :

*s2 = '\0';
1 голос
/ 14 ноября 2011

Вы путаете два похожих термина:

  • NULL (4 буквы) → это указатель.
  • NUL (3 буквы) → это символ (ASCII 0).
...