使用动态内存分配构建一个字节数组

时间:2018-06-08 18:04:18

标签: c arrays malloc byte

我正在尝试用C语言解析二进制文件的内容。文件的布局是标准的:32位表示在内存中加载一些东西的位置,32位表示数据的大小和实际数据

我可以正确地获得前两部分,但在获取数据方面出了问题。

我正在尝试构建一个纯字节数组,这是我到目前为止所拥有的:

uint8_t *constant_pool_data_buffer = malloc(constant_pool_size_buffer);
fread(constant_pool_data_buffer, sizeof(uint8_t), constant_pool_size_buffer, fp);

所以,如果我理解正确,我创建一个指向数组的指针,该数组的大小取决于数据的实际大小(这就是我使用malloc()的原因),我正在逐字节读取constant_pool_size_buffer次。

我正在打印一些调试内容,这就是我得到的:

constant_pool_size_buffer:C(在HEX中,十进制为12个字节)并且它是正确的 constant_pool_data_buffer:000100020003这是错误的,因为我期待0000 0001 0000 0002 0000 0003(确实是12个字节)

我不明白我做错了什么。

0 个答案:

没有答案