打印

数组删除与创建问题

[复制链接]
946|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsbjb|  楼主 | 2012-8-9 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DMA, AI, ce, DM, IDMA
//创建一个指针数组,我们可以这样做。

#include
<iostream>
using
namespace std;

void main()

{

char*a=new
char[10];//动态数组的创建。

    delete []a;
//动态数组的删除。

}

//那么问题来了。下面我创建两个指针数组,或者三个,或者更多。

#include
<iostream>
using
namespace std;

void main()

{

char*a=new
char[10];

char*b=new
char[9];

}

//我想在一个语句中同时释放2个指针所指的内存,那么我用什么表达方式来释放?

相关帖子

沙发
sinadz| | 2012-8-9 20:56 | 只看该作者
使用一句话释放两个指针, 这不可能.
因为 指针a和指针b所指向的内存都是单独分配的, 操作系统的内存管理机制已经决定了,你想要的不能实现.
new了两次,那么你就得delete两次.
当然,你使用循环之类的来释放, 如果循环中的那一句,也算一句的话, 那到是可行.
比如有 char *p[2];
p[0] = new char[10];
p[1] = new char[20];
for(int i=0;i<2;++i)
{
  delete [] p[i];
}

使用特权

评论回复
板凳
txcy| | 2012-8-9 21:03 | 只看该作者
delete []a;delete []b;//真不知道该怎么评价这个诡异的要求

使用特权

评论回复
地板
firstblood| | 2012-8-11 09:41 | 只看该作者
3楼的那个delete的用法是何意思额,求解了啊,谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

2354

帖子

0

粉丝