将ByteArray写入c中的文件

时间:2015-02-09 08:54:19

标签: c pointers bytearray fwrite

我有一个包含一些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在一次通话中可以处理多少?

1 个答案:

答案 0 :(得分:3)

替换

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

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

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