【发布时间】:2021-06-04 17:54:39
【问题描述】:
假设我们有一些结构包含一个成员(一个数组)。根据其成员的大小(假设 4 个字节)为结构分配内存。 内存也分配给它的成员。
struct X {
int *arr;
};
int main() {
struct X *x = (struct X *)calloc(1, sizeof(struct X));
x->arr = (int *)calloc(5, sizeof(int));
}
现在,如果分配给arr 的内存块大小大于分配给结构的大小,结构会怎样?
【问题讨论】:
-
您的结构有一个指针作为成员(不是数组)。它只存储那个指针,没有别的。您可以将该指针指向您想要的任何位置,不会以任何方式影响结构的大小。
-
@S.O.M:您可以通过点击分数下方的灰色复选标记来接受答案。
标签: c memory struct memory-management memory-leaks