警告:赋值使得整型指针没有强制转换

这是一个很常见的问题,但我没有得到我的答案,所以再次询问。警告:赋值使得整型指针没有强制转换

我定义为structers:

struct f_lock{ 

int x;

struct f_lock *next;

};

然后说我有一个函数:

struct f_lock *new_node() 

{

struct f_lock *new_f_lock;

.....

return new_f_lock;

}

这是我从另一个函数调用:

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

将grateull求助 谢谢

回答:

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

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

回答:

我似乎记得得到这个(而误导)的错误信息,一旦当我忘了声明函数为采取其在C需要void(但不是C++)的功能,不带参数:

struct f_lock *new_node() 

{

struct f_lock *new_f_lock;

.....

return new_f_lock;

}

应该是:

struct f_lock *new_node(void) 

{

struct f_lock *new_f_lock;

.....

return new_f_lock;

}

以上是 警告:赋值使得整型指针没有强制转换 的全部内容, 来源链接: utcz.com/qa/264268.html

回到顶部