以下结构占用的内存字节数为

时间:2015-07-11 10:27:43

标签: c structure

以下结构占用的内存字节数为

    #include <stdio.h>
    struct test
    {
        int k;
        char* c;
    };

4 个答案:

答案 0 :(得分:3)

取决于机器架构及其内存对齐。通常,在32位计算机上,它将提供8个字节 在64位机器上,它将提供16个字节。这是因为4填充位将在int k;之后添加。

尝试用

找出它
printf("%zu\n", sizeof(struct test));

答案 1 :(得分:1)

调用main()中的以下行,您将得到答案,具体取决于机器架构:

printf("%zu",sizeof(test));

答案 2 :(得分:1)

int实际上是遗产,历史上与(任何*)的长度相同。在寄存器大小为64位的现代系统中,sizeof(int)= 32。但指针始终是处理器寄存器大小的大小。所以你在64位系统上有32位+ 64位,在8位系统上有2 * 8位。但结构的大小也取决于内存对齐。

找出这样一个结构有多长的方法是由C运算符sizeof给出的。这里:sizeof(struct test)

要定义我们日期int的长度,您应该使用#include <stdint.h>中的类型。

答案 3 :(得分:0)

如前所述,您可以使用sizeof来检查它,但基本上是结构的大小,它是其组件的总和(在您的情况下是sizeof(int)+ sizeof(char *))。