在c中将ByteArray写入文件

Writing ByteArray to file in c

我有一个包含一些 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 在一次调用中可以处理多少有限制吗?

替换

fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);

fwrite(byteArray.bytes, 1, byteArray.length, fileToWrite);

正如@Sourav Ghosh 所指出的,确保 byteArray.bytes 指向正确的源位置。