我开始研究动态内存分配,首先我想通了动态数组,有了它们一切都清楚了,我们使用它们,例如在事先不知道大小的时候。但是我对动态变量(不是数组)产生了兴趣,上网查了一下,发现了这个东西:
void foo() {
int variable = 5; //lives only in function
int *dVariable = new int(5); //lives outside function
}
在许多网站上,他们都给出了这个例子,但我不明白这个变量是如何存在于函数之外的?我尝试做同样的事情,并尝试访问函数外部的 dVariable 变量(例如,在 main 中)我自然会出错,请解释如果它位于函数外部,如何访问它?还是我只是误解了“生活在功能之外”这个词?
不是
一个
如果您从函数返回指针,则该内存将进一步可用。例如,
你的五个将被显示。内存保持分配状态,直到您使用
delete.所以变得更清楚了?