我有一个包含一些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写入文件。
这是保存ByteArray的正确方法吗? fwrite在一次通话中可以处理多少?
答案 0 :(得分:3)
替换
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
与
fwrite(byteArray.bytes, 1, byteArray.length, fileToWrite);
正如@Sourav Ghosh指出的那样,确保byteArray.bytes
指向正确的源位置。