Gang,我做错了什么,我想从文件中取出一个特定的偏移+一段数据并将其复制到相同长度的分配缓冲区中......
if( stru_ct->size != 0 ){
unsigned char * s_buffer = malloc(stru_ct->size);
if( !s_buffer ){
printf( "Memory error!" );
return -1;
}
fseek( file, wp->stru_ct->offset, SEEK_SET );
fread( s_buffer, stru_ct->size, 1, file );
}
没有编译错误,在fread之后,吸收器仍会导致0。我知道偏移+长度的数据。
感谢您的帮助!!
答案 0 :(得分:1)
检查fseek()
和fread()
的返回值,确保它们没有失败。永远不要认为你做的电话已成功。
答案 1 :(得分:0)
stru_ct->size
不等于0吗?它为0似乎是你所看到的最可能的解释。