![]() |
1
4
在您的
相反,您需要在堆上创建对象并返回它。堆内存不绑定到函数,可以在分配它的作用域之外进行访问。
但是,如果在堆上分配对象(即使用
使用更现代的C++功能,可以减少内存管理的一些陷阱。尽管考虑到问题的性质,在使用这些抽象之前,您应该努力对C++中的内存分配有一个坚实的理解。 |
![]() |
2
2
具有
您创建一个“局部”变量,即一个具有自动存储持续时间的变量,其生存时间在函数末尾结束,然后返回其地址。因此,您将返回超出范围的对象的地址,这是未定义的行为。 如果不太检查逻辑,只专注于解决这个内存问题,您可能需要编写
|
![]() |
3
0
您正在返回指向本地对象的指针
|
![]() |
Community wiki · safe_ptr实现 1 年前 |
![]() |
lplplplp · 为什么不能访问函数外的结构指针 2 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |