C++自己写了很久都弄混几个常见的错误,堆 栈,托JingWei和Xiaoma的指导终于弄清楚,果然是工作几年的大牛不一样。呵呵。
直入主题。
C++中,局部函数里面,new一个内存块,地址是在堆中,而其他的变量基本在栈中。栈中的变量内存随着局部函数的结束而被自动销毁,堆的则不会,需要自己delete销毁。
举个常见的错误:
int* Func1()
{ int p[2];//内存在栈中
p[0]=1;
p[1]=2;
return p;
}
int main()
{
int *p=Func1();
cout<<p[0]<
1