我写了以下代码
#include "stdio.h"
struct node {
int x;
int y;
};
typedef struct node Node;
Node * f() {
Node node = {1, 2};
return &node;
}
int main() {
Node *node = f();
printf("(%d, %d)", node->x, node->y);
printf("(%d, %d)", node->x, node->y);
}
在编译期间,我收到warning: address of stack memory associated with local variable 'node' returned
警告。
但是,printf
这使我想到了一个问题:确切的时间是否清除了对f()
的调用堆栈?