使用fread时缓冲数组类型要对应
例:
FILE *fp = fopen("filepath", "rb");
const bufferSize = 1024000;
int16_t buffer[bufferSize]{0};
int reads = 0;
while((reads=fread(buffer, sizeof(int16_t), bufferSize, fp))) {
...
}
复制代码
在上面的例子中如果文件的字节数为奇数,则可能导致内存错误而崩溃,所以读取二进制文件一般应采用单字节类型(char u_char int8_t uint8_t)