首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

急问outBuffer=new char[十]和char outBuffer[10]区别

2012-08-11 
急问outBuffernew char[10]和char outBuffer[10]区别char* outBuffer1 NULLoutBuffer1new char[10]

急问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)

热点排行