我定义了这样的结构
typedef struct
{
char code[6]; //股票代码
char name[8]; //股票名称
...
} TEMP128;
typedef struct{
TEMP128 showt;
}TEMPFILE;
TEMPFILE *tempfile;
然后开辟了一块内存空间
tempfile=new TEMPFILE[100];
在退出时
delete []tempfile;
出错:提示说某块内存不能written
是否要先delete TEMP128里的code和name?
如果是这个原因,怎样delete?
你所写的是正确的,另找原因吧。
up
不是delete []tempfile;这个引起的!
#include <iostream>
using namespace std;
typedef struct
{
char code[6]; //股票代码
char name[8]; //股票名称
} TEMP128;
typedef struct{
TEMP128 showt;
}TEMPFILE;
void main( )
{
TEMPFILE *tempfile;
tempfile=new TEMPFILE[100];
for ( int i=0;i<100;++i)
{
(tempfile[i].showt).code[5]=4;
tempfile[i].showt.name[2]=s;
}
delete []tempfile;
system("PAUSE");
}
是不是字节对齐的问题?
最好是定义的结构体的 sizeof 是 4 的倍数
我在vc中试过你的程序,没有错。
不知你用什末编译的?
其它地方错了吧
把你的代码全部贴出来