gpt4 book ai didi

c - realloc 和 calloc 的动态内存分配问题

转载 作者:行者123 更新时间:2023-12-04 06:07:31 27 4
gpt4 key购买 nike

请参阅以下功能:

int go(void) {
int *p, *q;
p = calloc(10,sizeof(int));
q = realloc(p, 20 * sizeof(int));
<<X>>
}

假设两个内存分配函数调用都成功了,在点标记 <<X>>处,下列说法正确的是.
  • p 和 q 的值相同。
  • p 指向 10 个整数,每个整数的值为 0。
  • q 指向至少 80 字节的内存。

  • 这个问题在我的C试卷里。除了(2)这显然是正确的。我对(1)和(3)很困惑。有人可以向我解释这个吗?

    最佳答案

    正如 Brendan 所说,(1) 不一定是真的(也可能不是真的)。

    在 C 中,通常一个“int”是 4 个字节,所以 (3) 应该是真的。在我知道的所有系统上都是如此,尽管我并不肯定 C 标准说“int”必须是四个字节长。

    关于c - realloc 和 calloc 的动态内存分配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177854/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com