for(int m=0;m<20;m++)
{
namenumb[m]=new char[8];
}
内存如何回收? }
{
namenumb[m]=new char[8];
}
内存如何回收? }
解决方案 »
- 如何控制 卷筒针式打印机 一行一行的打印?
- gsoap的array与cxf的对接问题
- 付费:打印纸张的统计,打印内容的监控
- 怎样在C++中调用DLL,没有.dll和.lib。
- CDialog中TOOLBAR显示的问题
- ××××××××××大于32X32的ICON怎么用实际尺寸显示????×××××××
- 关于CString疑问
- 简单一题:如何使 CEdit 窗口的scrollbar自动向下滚动?
- 数据采集卡的驱动程序问题,
- 我用代码创建了一个CEdit控件,请问怎样设置它的属性?
- 请教CreateWaitableTimer和SetWaitableTimer函数的用法?
- inno setup 注册表设置失败的问题?
{
delete namenumb[m];
}
使用 new 得来的空间,必须用 delete 来释放;
使用 new [] 得来的空间,必须用 delete [] 来释放。
彼此之间不能混用!
我在1楼的方法就可以了 其余的写法是多余的
// 创建字符指针数组
char **parr = new char*[100]; //注意这里是**parr
// 释放各个字符数组
for (int i =0; i < 100; i++)
delete [] parr[i];
//释放字符指针数组
delete [] parr;
{
delete []namenumb[i];
}
// 创建数组
int *parr = new int[100];
// 释放数组
delete [] parr;
char* namenumb[20]; for(int i=0; i<20; i++)
{
namenumb[i] = new char[8];
} // ... for(int j=0; j<20; j++)
{
delete[] namenumb[j];
}
对于new出来的数组,用delete[]释放
for(int i=0;i<20;i++)
{
delete[] namenumb[i];
namenumb[j]=NULL:
}
{
delete []namenumb[i];
}
正解
for(int i=0; i<20; i++)
{
delete []namenumb[i];
}
for(int i=0;i<20;i++)
{
delete[] namenumb[i];
namenumb[j]=NULL:
}