【发布时间】:2013-09-07 02:53:59
【问题描述】:
void PrintArray()
{
int a[4] = {4,3,1,5};
for(int i=0; i<4; i++)
cout<<a[i];
}
在这个函数的调用完成后,分配给指针变量“a”的内存和“a”指向的 4 整数块到底发生了什么? 块和指针变量的内存是否被解除分配,还是会造成某种内存泄漏?
【问题讨论】:
-
a在这里不是指针,它是一个数组。数组衰减有时会指向指针。 -
另外,a 不是一个静态变量。这是一个自动变量。
-
简短回答。当函数返回时, a 会自动销毁。没有内存泄漏。如果您的代码中有
new或malloc,请担心内存泄漏。
标签: c++ c memory-management dynamic-memory-allocation static-memory-allocation