警告:赋值从整数中生成指针而不进行强制转换

Lip*_*eka 2 c linux

这是一个很常见的问题,但我没有得到答案,所以再次提出来.

我有结构定义为:

struct f_lock{
              int x;
              struct f_lock *next;
     };
Run Code Online (Sandbox Code Playgroud)

然后说我有一个功能:

struct f_lock *new_node()
{
   struct f_lock *new_f_lock;
   .....
   return new_f_lock;
}
Run Code Online (Sandbox Code Playgroud)

我从另一个函数调用的:

struct f_lock *new_f_lock;
new_f_lock = new_node(); //This line gives the error warning:assignment makes pointer from integer without a cast
Run Code Online (Sandbox Code Playgroud)

请帮忙谢谢

Fre*_*Foo 6

你也得到错误implicit declaration of function ‘new_node’吗?因为在这种情况下,您可能忘记new_node在您调用它的模块中声明.(如果您没有收到该错误,请重新编译-Wall以打开更多警告.)

警告消息的说明:如果new_node没有正确声明,编译器将假定它返回int,这是一种默认的返回类型(由于历史原因).