主题:急切求解决!!!!!!!!
delete 和new 问题
MFC对话框类中定义2个结构体 并定义 f* fda[2]; h* fgd;
h* fgd;typedef struct tagf
{
char m;
char n;
char cstr;
}f;
typedef struct tagh
{
char j;
f* sdf;
}h;
接下来在类的构造函数中如下
f* fda=new f[2];
h* fgd=new h;
fgd->sdf=fda;
fgd->j='a';
fgd->sdf[0].m='a';
fgd->sdf[0].n='a';
fgd->sdf[0].cstr='a';
fgd->sdf[1].m='a';
fgd->sdf[1].n='a';
fgd->sdf[1].cstr='a'
在类的析构函数中如下
delete [] fda;
delete fgd;
编译通过,但运行却发生错误
调试的结果是
MyProjectCE.exe 中的 0x0041a65b 处未处理的异常: 0xC0000005: 读取位置 0xccccccd0 时发生访问冲突
析构函数什么都不写的话就没错,这都为什么啊,怎么解决?
求高人说下...谢谢
MFC对话框类中定义2个结构体 并定义 f* fda[2]; h* fgd;
h* fgd;typedef struct tagf
{
char m;
char n;
char cstr;
}f;
typedef struct tagh
{
char j;
f* sdf;
}h;
接下来在类的构造函数中如下
f* fda=new f[2];
h* fgd=new h;
fgd->sdf=fda;
fgd->j='a';
fgd->sdf[0].m='a';
fgd->sdf[0].n='a';
fgd->sdf[0].cstr='a';
fgd->sdf[1].m='a';
fgd->sdf[1].n='a';
fgd->sdf[1].cstr='a'
在类的析构函数中如下
delete [] fda;
delete fgd;
编译通过,但运行却发生错误
调试的结果是
MyProjectCE.exe 中的 0x0041a65b 处未处理的异常: 0xC0000005: 读取位置 0xccccccd0 时发生访问冲突
析构函数什么都不写的话就没错,这都为什么啊,怎么解决?
求高人说下...谢谢