【发布时间】:2015-02-27 14:58:12
【问题描述】:
为什么下面的猜测是错误的? (一位软件工程公司经理告诉我,这几乎是正确的,但我不明白为什么,我无法在互联网上搜索答案..)
int* ptr = new int; // Sorry I mistyped before
我的主张:
- 左边部分 (ptr) 是静态内存分配。
- 右边部分(new int)是动态内存分配的。
// 新编辑:2015 年 1 月 1 日 17:39 (UTC +08:00)
我在想的是,
它将堆栈指针向下(或向上?)移动以释放ptr 的空间。
并为new int 找到一个空白空间。
然后将这个new int的地址存入ptr。
【问题讨论】:
-
你必须阅读指针,这里有一个很好的视频来理解指针。 youtube.com/playlist?list=PL2_aWCzGMAwLZp6LMUKI3cc7pgGsasm2_
-
每一层都错了……首先,为什么你认为动态分配的内存可以分配给静态的(实际上不是静态的)?
-
如果你的左边部分发生在一个功能块中,它就不是静态内存分配。
-
这段代码是什么意思?左边说
ptr是一个int,但是=右边的东西是一个指针。 -
致大卫,对不起,我想输入 int* ptr = new int;
标签: c++ memory-management