typedef struct mystruct
{
...
int *buf;
....
}mystru;mystru mydata;
madata.buf = new int[100];
for(int destdata,int i=0;i<100;i++)
{
destdata=*(madata.buf + i );
}
这样做有什么不对吗?
而且如果我想把madata.buf作为参数怎么用?
比如
fun(int *src,int *dest,int num)
{
for(int i=0;i<num;i++)
{
*(dest+i)=*(src+i);
}
}void main()
{
...
fun(mystru.buf,destvariable,numvariable);
}
这样有什么不对?
{
...
int *buf;
....
}mystru;mystru mydata;
madata.buf = new int[100];
for(int destdata,int i=0;i<100;i++)
{
destdata=*(madata.buf + i );
}
这样做有什么不对吗?
而且如果我想把madata.buf作为参数怎么用?
比如
fun(int *src,int *dest,int num)
{
for(int i=0;i<num;i++)
{
*(dest+i)=*(src+i);
}
}void main()
{
...
fun(mystru.buf,destvariable,numvariable);
}
这样有什么不对?
还有结构体内能不能动态分配缓冲区?
我跟踪调试发现:madata.buf = new int[100];执行后,出现一个错误: CXX0030: Error: expression cannot be evaluated
是不是结构体内不能动态分配缓冲区?
mystru mydata;
mydata.buf = new int[100];
for(int destdata,int i=0;i<100;i++)
{
destdata = *(mydata.buf + i );
} //delete [] mydata.buf;
---------------------------
No problem above.
CXX0030: Error: expression cannot be evaluated
{
//...
int *buf;
//....
}mystru;
编译
哪一行错嘛?