栈 存放的是变量或函数返回的值,同时调用函数使用栈,由编译器自动释放。
堆 则是程序员自行申请的一段空间,C中用malloc,C++中用new去申请需要的内存空间,同时也需要自行释放空间,free()和delete。
new,delete使用方法
int *p=new int; //申请int大小的空间并返回地址给p
int *p=new int(100) //申请int大小空间赋值100并返回地址给p
int *p=new int[10] //申请int数组长度为10,返回首地址给p
delete p //释放p所指向地址的空间
delete []p //释放p数组 注意有方括号 [] 漏掉的话会造成内存泄露