首页 > 解决方案 > 在 C 中创建 BYTE 数组结构

问题描述

我想在大小为 512 的 C 结构中创建一个字节数组,但结构的大小最终是该大小的八倍。你能否帮助我如何制作所需的数据结构。

这是我当前的代码

#include <stdint.h>

typedef uint8_t BYTE;

typedef struct _ByteArray {

    BYTE *arr[512];
} __attribute__((__packed__))
JPEG;

标签: carraysstructbyte

解决方案


BYTE * arr[512];
 ^   ^  ^   ^
 |   |  |   |
 |   |  |  is an array of 512
 |   |  arr
 |  pointers to
BYTE

您必须将其更改为:

BYTE arr[512];
 ^    ^   ^
 |    |   |
 |    |  is an array of 512 
 |   arr 
BYTE

由于您需要一个字节数组,因此无需制作 struct 数据包,因为不会添加任何填充字节。


推荐阅读