我在编写读取xml文件的程序,函数如下 
void mxml_refill_from_stream_func( MXML_REFIL *ref ) 

FILE *fp = (FILE *) ref->data; 
int len; len = fread( ref->buffer, 1, ref->bufsize, fp ); if ( ferror( fp ) ) { 
ref->status = MXML_STATUS_ERROR; 
ref->error = MXML_ERROR_IO; 

else { 
ref->buflen = len; 
ref->bufpos = 0; 

} 但是运行到len = fread( ref->buffer, 1, ref->bufsize, fp );那个位置,总是出现 
Unhandled Exception in myxml.exe(NTDLL.DLL):0XC0000005:Access ... 已经调试一天了,还没有解决,高手帮忙啊

解决方案 »

  1.   

    len = fread( ref->buffer, 1, ref->bufsize, fp ); 
    ref->buffer有没有开辟空间的?if(!fp)判断一下fp是否是有效值
      

  2.   

    FILE *fp = (FILE *) ref->data; 
    int len; len = fread( ref->buffer, 1, ref->bufsize, fp ); 代码这里:要检查fp是否为NULL
    即:
    if (fp != NULL) {...
      

  3.   

    ref->buffer没有分配空间或是小于ref->bufsize了。