在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 - 我做了:-) - 重寫了答案 –