【发布时间】:2011-12-12 17:35:15
【问题描述】:
在 c 中,假设你有以下结构和一个实例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
typedef struct _a {
int *a1;
float *a2;
char *a3;
}a;
a b;
b.a1 = (int *) malloc(sizeof(int) * 10);
b.a2 = (float *) malloc(sizeof(float) * 10);
b.a3 = (char *) malloc(sizeof(char) * 10);
return 0;
}
现在,如何找到与变量 b 分配/关联的总内存? sizeof(b) 将只返回结构中指针的组合大小,但不会计算使用 malloc 为不同类型/大小分配的内存的总和。如何在内存中找到这个结构的总大小(包括填充,如果适用)?
【问题讨论】:
标签: c memory pointers structure sizeof