-1

我在C中有这个功能:

static Node* newNode(void* e){
Node n={e,NULL,NULL};
return &n;
}

在编译时,我收到以下警告,我想了解它为什么会发生:

warning: function returns address of local variable [enabled by default]

这背后隐藏着怎样的危险?

谢谢

4

2 回答 2

5

从函数返回时,局部变量会被销毁。在函数返回后访问它们是未定义的行为,不要这样做。

于 2012-07-01T10:18:33.970 回答
0

警告是因为变量的范围是函数的本地 - 一旦函数返回,该变量不再在范围内,并且它的值是未定义的。

于 2012-07-01T11:16:16.280 回答