考虑代码段:
ClassName* p;
p = new ClassName;
Run Code Online (Sandbox Code Playgroud)
据我了解,我们正在从堆中分配内存到存储*p.
但现在考虑:
ClassName C;
Run Code Online (Sandbox Code Playgroud)
问题:如果不是从堆中,内存C来自哪里?
据我了解,我们正在从堆中分配内存到存储
*p.
更正确的措辞,创建的对象new具有动态存储持续时间.
如果不是从堆中,内存
C来自哪里?
它具有自动存储持续时间.
请参阅C++标准§3.7/ 1.
谈论"堆栈"或"堆"会带您进入编译器实现级别.您通常不会对C++编译器如何使不同类型的存储持续时间起作用感兴趣,而只对它们的语义感兴趣.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |