结构体定义:struct mulv
{
char mulvName[20];
};动态开辟空间:int N;
N=GetPrivateProfileInt("Test","N",0,".\\ex1.ini");//从ex1.ini文件中取出整数N;
struct mulv* lis=new mulv[N];//定义长度为N的结构体数组;使用:memcpy(lis[i].mulvName,strGrouName,20);//strGrouName定义为一个char[20]并且已经赋值;
myFile.Write(&lis,sizeof(lis));
myFile.Close();程序编译的时候没有问题,但是运行到memcpy(lis[i].mulvName,strGrouName,20);这个的时候提示Access volition是怎么回事啊 怎么处理呢?
补充:
主要问题我觉得应该是在结构体数组定义上,因为当我把定义改为struct mulv lis[20];的时候程序能正常运行;
现在我要一个动态结构体数组应该怎么做呢?
{
char mulvName[20];
};动态开辟空间:int N;
N=GetPrivateProfileInt("Test","N",0,".\\ex1.ini");//从ex1.ini文件中取出整数N;
struct mulv* lis=new mulv[N];//定义长度为N的结构体数组;使用:memcpy(lis[i].mulvName,strGrouName,20);//strGrouName定义为一个char[20]并且已经赋值;
myFile.Write(&lis,sizeof(lis));
myFile.Close();程序编译的时候没有问题,但是运行到memcpy(lis[i].mulvName,strGrouName,20);这个的时候提示Access volition是怎么回事啊 怎么处理呢?
补充:
主要问题我觉得应该是在结构体数组定义上,因为当我把定义改为struct mulv lis[20];的时候程序能正常运行;
现在我要一个动态结构体数组应该怎么做呢?
可以吗?
其中的i你是多少?
int N;
N=GetPrivateProfileInt("Test","N",0,".\\ex1.ini");
mulv* lis=new mulv[N];
myFile.Read(&lis,sizeof(lis));
myFile.Close();
for(i=0;i<N;i++)
{
memcpy(str,lis[i].mulvName,20);
}改成这样也不对哦
还是提示Access volition
int N;
N=GetPrivateProfileInt("Test","N",0,".\\ex1.ini");
if(N<=0){
trace("oops, error occured!");
return;
}
mulv* lis=new mulv[N];
myFile.Read(&lis,sizeof(lis));
myFile.Close();
for(i=0;i<N;i++)
{
memcpy(str,lis[i].mulvName,20);
}