【发布时间】:2012-07-23 03:23:58
【问题描述】:
想知道C++中动态内存、栈内存和静态内存的区别。
以下是一些代码作为示例:
#include<iostream>
using namespace std;
char *GetMemory(void)
{
char p[]="hello world";
char *q="hello world";
return q;
}
int main(void)
{
return 0;
}
为什么p在栈内存中,而q在动态内存中?
【问题讨论】:
-
您在 C++ 中使用
new关键字分配动态内存。q不是动态分配的。两个变量都在堆栈上。 -
看看这个SO answer,看看堆和栈的区别。