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);
}
这样有什么不对?

解决方案 »

  1.   

    请问能不能这样用?
    还有结构体内能不能动态分配缓冲区?
    我跟踪调试发现:madata.buf = new int[100];执行后,出现一个错误: CXX0030: Error: expression cannot be evaluated
    是不是结构体内不能动态分配缓冲区?
      

  2.   

    --------------------------
    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.
      

  3.   

    可是事实上我就是怎么做的,但是老是提示:
    CXX0030: Error: expression cannot be evaluated
      

  4.   

    typedef struct mystruct
    {
    //...
    int *buf;
    //....
    }mystru;
    编译
    哪一行错嘛?