在C,说你有以下的结构和某个实例: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分配的内存总和。如何在内存中找到这个结构的总大小(包括填充如果适用)?
@OliCharlesworth - 我做了:-) - 重写了答案 –