我有一个包含一些 ByteArray 数据的结构
typedef struct {
uint32_t length;
uint8_t* bytes;
} FREByteArray;
在这里我试图将其保存到文件中
FREByteArray byteArray;
if((fileToWrite = fopen(filePath, "wb+")) != NULL){
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
fclose(fileToWrite);
}
但这似乎并没有保存所有数据,保存的文件大小为16KB,实际数据约为32KB。我认为 fwrite 无法将整个字节数组写入文件。
这是保存 ByteArray 的正确方法吗? fwrite 在一次调用中可以处理的数据量是否有限制?
最佳答案
替换
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
与
fwrite(byteArray.bytes, 1, byteArray.length, fileToWrite);
正如 @Sourav Ghosh 所指出的,请确保 byteArray.bytes
指向正确的源位置。
关于c - 在c中将ByteArray写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28405884/