【发布时间】:2016-10-09 15:35:16
【问题描述】:
在阅读 K&R(第 6.5 节,第二版)时,我遇到了以下功能:
struct tnode *talloc(void)
{
return (struct tnode *) malloc( sizeof(struct tnode) );
}
该函数分配一些空间来存储结构 tnode。我只是想通过询问我是否会达到同样的效果来检查我的理解:
struct tnode *talloc(void)
{
struct tnode s;
return &s;
}
【问题讨论】:
-
第二个代码片段将不起作用,因为它正在返回一个指向本地堆栈上的项目的指针。本地堆栈在超出范围时变为未定义,就像函数退出时一样。