这段程序怎么用delete回收内存,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/04 16:58:17
自己写了一段程序,不知道怎么用delete 回收内存,请高手指教,谢谢!
#include <iostream>
#include <string>
#include <vector>
#include <cstring>

using namespace std;

const int MData = 2;

int main()
{
string temp = "";
vector<string> svector;
for(vector<string>::size_type ix = 0; ix != MData; ix++)
{
cin>>temp;
svector.push_back(temp);
}

for(vector<string>::iterator iter = svector.begin(); iter != svector.end(); iter++)
{
cout<<*iter<<" ";
}
cout<<endl;

char a[MData][20] = {"sal", "yyy"};
for(int i = 0; i < MData; i++)
{
size_t max = svector[i].size();
for(size_t j = 0; j < max; j++)
{
a[i][j] = svector[i][j];
}
a[i][max] = '\0';
}
cout<<endl;
char * aptr[MData];

char * aptr[MData];
for(int i = 0; i< MData; i++)
{
int max = strlen(a[i]);
//申请动态内存
* (aptr + i) = new char[max + 1];
for(int j = 0; j < max; j++)
{
* (* (aptr + i) + j) = a[i][j];
}
* (* (aptr + i) + max) = 0;
cout<<* (aptr + i)<<" ";
delete [](aptr+i);//做完每次循环后

}

delete [][]aptr;可以么

楼上那位"匿名"回答的对.
对于 new 类型[长度] 这样的形式,用delete []指针名;
对于 new 类型 这样的形式,用delete 指针名.