注册 登录
编程论坛 C++教室

[求助]关于字符数组的释放

alleks 发布于 2007-08-07 00:06, 1246 次点击
请看这段代码:

vector<string> svec; //已初始化

char **parr =new char*[svec.size()];

size_t ix=0;

for(vector<string>::iterator iter)=svec.begin(); iter!=svec.end(); ++iter, ++ix)

{

char *p =new char[(*iter).size()+1]; //

strcpy(p,(*iter).c_str());

parr[ix]=p;

}

for(ix=0; ix!=svec.size();++ix)

delete [] parr[ix];

delete [] parr;


请问为什么要这样释放呢,我不太明白,我是这样写的,有问题吗?和上面的一样吗?

for(vector<string>::iterator iter)=svec.begin(); iter!=svec.end(); ++iter, ++ix)

{

char *p =new char[(*iter).size()+1]; //

strcpy(p,(*iter).c_str());

parr[ix]=p;

delete [] p;

}

delete [] parr;
0 回复
1