C++中Delete用法:请问int *p=new int(5); 此时delete的形式是delete []p还是delete p;

如题所述

new int(5)这里的5不是代表有5个元素的数组,而是表示动态分配一个int型内存,然后为其初始化为5,delete的形式是delete p。如果是new int[5],则表示分配一个有5个元素的数组对象,delete的话是delete []p。关于C++动态内存分配的内容可以看下鸡啄米博客的《鸡啄米:C++编程入门系列之三十一(数组、指针和字符串:动态内存分配和释放)》。希望可以帮到你。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-16
如果int * p = new int[5] ;就用delete [] p , 是int *p=new int(5); 就用delete p ;
第2个回答  2011-11-16
delete p;
这个p并不是指向一个数组。*p就是那个5本回答被提问者采纳
第3个回答  2011-11-16
辨析,int* data = new int[5]; // 这个表示数组有5个元素
int* data = new int(5); // 有何不同?这个表示*data = 5, 完全不一样

知道用哪个了吧。
相似回答