返回后如何访问函数堆栈内存? [复制]

Posted

技术标签:

【中文标题】返回后如何访问函数堆栈内存? [复制]【英文标题】:How am I being able to access function stack memory after returning? [duplicate] 【发布时间】:2022-01-14 20:22:56 【问题描述】:

这是我的代码:

使用命名空间标准;

// 如果内存是静态分配的,那么在函数返回且堆栈消失后,您将无法访问内存地址。

int* function(int x)
 
  int *x_ptr = &x;
  return x_ptr;
 

int main()

 int x=10;
 int *x_ptr = function(x);
 cout<<*x_ptr<<endl;

【问题讨论】:

【参考方案1】:

函数返回后不能访问内存地址

正确。

程序的行为未定义。

【讨论】:

以上是关于返回后如何访问函数堆栈内存? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

堆栈和队列

内存的堆栈分析

WebAssembly:复制栈顶

内存逃逸分析

调用栈

为啥要在堆上而不是栈上分配内存? [复制]