C Linux警告:赋值在没有强制转换的情况下从指针生成整数

时间:2011-11-13 18:31:05

标签: c linux casting warnings

我有一个C linux函数,它有以下代码:

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

在这个函数中我将值放入s2,最后放入NULL。

代码:

*s2 = NULL

生成以下警告: 赋值从指针生成整数而没有强制转换

我想修复我的代码,我该怎么做?

感谢

3 个答案:

答案 0 :(得分:5)

您的系统似乎将NULL定义为类似(void *)0的内容。这意味着你的任务正在执行警告所说的 - 从没有强制转换的指针生成一个整数。您无论如何都不想将NULL放入char变量中 - 您可能正在寻找:

*s2 = '\0';

答案 1 :(得分:2)

我认为你的意思是null character,而不是NULL pointer

*s2 = '\0';

答案 2 :(得分:1)

你混淆了两个相似的术语:

  • NULL(4个字母)→这个是指针。
  • NUL(3个字母)→这个是一个字符(ASCII 0)。