CArray<bittt,bittt> char_temp;
其中的 char_temp[aaa].bitt是char*的指针我
char_temp[aaa].bitt = new char[10];可是我不能delete他,下面这句话就出错,怎么回事啊?
delete char_temp[aaa].bitt;
[↑]
其中的 char_temp[aaa].bitt是char*的指针我
char_temp[aaa].bitt = new char[10];可是我不能delete他,下面这句话就出错,怎么回事啊?
delete char_temp[aaa].bitt;
[↑]
解决方案 »
- 看看这句什么意思#define MMC_IMG_PATH "..\\\\..\\\\..\\\\mmc\\\\images\\\\128X160\\\\"
- USB应用程序开发 求助(急!!!在线等待......)
- vs2005一个莫名的错误:error PRJ0002 : 错误的结果 128(从“D:\Program Files\Microsoft Visual Studio 8.0\VC\bin\cl.exe”返回)
- 写控件时,caption内容如何总是不变
- <<深入浅出mfc>>
- FLOAT与float?
- 怎么做多列list控件,并对其进行操作阿~
- 怎样在win2000下启动和终止服务进程?
- MFC重写OnSize()之后控件丢失
- vc vs dephi and c++builder
- 用creatfile()来创建的文件,怎么才能得到文件的长度那?
- 请问VC工作区中有两个工程,它们之间怎么调用?(散分)
而delete []说明后面删除的指针是一个对象数组,假如
string *stringArray = new string[100];
...
delete stringArray
那么,又stringArray所指的100个string对象中的99个未必能够被适当的删除,因为它们的destrcctors没有被调用。所以正确的做法是:
如果你在调用new时使用了[],那么必须在delete时也使用[];
如果你在调用new时没有使用[],那么也不应该在delete时使用[]
char_temp[aaa].bitt = NULL;
头文件定义
struct bittt
{
char *bitt;
};
cpp中
void OnOK()
{
CArray<bittt, bittt> tmp; bittt bit;
tmp.Add(bit);
tmp[0].bitt = new char[10];
delete tmp[0].bitt;
}运行OK
char *p = char_temp[aaa].bitt;
delete p;
请查看p是否和你当初new返回的地址一致!
tmp.Add(bit);就是说你那个aaa项是怎么产生的,是否合法?