为什么sizeof返回的值不是struct

时间:2017-05-02 02:05:21

标签: c++ c

我有以下结构

struct vertice_t{
    char city;
    char connectedBy;
    unsigned short airportCost;
    unsigned short primKey;
    int queueIndex;
    struct adjacency_list_t * adjacencyList;
};

struct adjacency_list_t{
    struct adjacency_list_node_t *  first;
    struct adjacency_list_node_t *  last;
};

struct adjacency_list_node_t{
    unsigned short weight;
    struct vertice_t *  vertice;
    struct adjacency_list_node_t * next;
};

当我执行sizeof(struct vertice_t)时,我得到值24.但是我可以自己看到这个结构只需要1 + 1 + 2 + 2 + 4 + 8 = 18Bytes

为什么会这样?无论如何,我可以压缩上面的结构中的数据,使其更小?这是一个项目,我需要将整个内存使用量减少30%。

谢谢!

0 个答案:

没有答案