急问outBuffer=new char[10]和char outBuffer[10]区别
char* outBuffer1 = NULL;
outBuffer1=new char[10];
和
char outBuffer2[10];
这样获得的内存有什么不同?哪种更加容易带来问题?急问,在线等。谢谢高人哈~
[解决办法]
参考这个帖子:
http://topic.csdn.net/t/20021018/15/1107099.html
[解决办法]
char outBuffer1[10]应该是静态分配,作用域自动释放内存
char *outBuffer2=new char[10]; 动态分配,应手工删除,否则会造成内存泄漏
而且它得到的是 char *类型
还有,一个在栈上,一个在堆上.
[解决办法]
http://www.cnblogs.com/guyan/archive/2011/12/23/2299179.html
[解决办法]
假定代码在一个函数内,那么:
1. 前者在堆上,后者在栈上
2. 前者需要用delete[] 回收内存,后者不需要
3. 堆的容量通常很大,栈的容量通常比较少(比如VC中栈的缺省大小是1M)