void main(void)                                           
{
int hOpen ;
int hConn ;
BOOL bRet ; 
int filecount,j;
char * filelist[256] ;
LPWIN32_FIND_DATAA nextdata;
memset(nextdata,0X00,sizeof(LPWIN32_FIND_DATAA));
LPWIN32_FIND_DATAA ssss;
memset(ssss,0X00,sizeof(LPWIN32_FIND_DATAA));
int findresut;声明了两个同样的结构体LPWIN32_FIND_DATAA,第一个没错,第二个就出错,连memset也不能做,而且里面内存一堆乱码,连free也不能做,请问为什么?

解决方案 »

  1.   


    memset(nextdata,0X00,sizeof(LPWIN32_FIND_DATAA));
    这句 不对LPWIN32_FIND_DATAA  不知道你是 怎么定义的,应该是个 指针,不然不能通过编译,
    那么先要分配空间 , 清零, 那么 sizeof(LPWIN32_FIND_DATAA) 也不对,sizeof(LPWIN32_FIND_DATAA) 值为 4 
      

  2.   

    这个LPWIN32_FIND_DATAA定义呢,有时不能直接memset的
      

  3.   

    这个char * filelist[256] 是什么意思?
      

  4.   

    一般memset()只能对char(byte)动态数组初始化的,你直接对一个结构进行,不行吧.
    nextdata只是一个LPWIN32_FIND_DATAA,后面又要初始化为sizeof(LPWIN32_FIND_DATAA)个byte,这样当然有问题.