gpt4 book ai didi

c - C 中的数组和 malloc

转载 作者:太空狗 更新时间:2023-10-29 16:13:14 24 4
gpt4 key购买 nike

1.内存中的二维如何存储,是否连续? (我的意思是 int[M][N],不是动态分配,我认为 int[M][N] 发生在堆栈区域,所以连续,不是吗?)

2.malloc分配的区域必须是连续的吗?

3.如果不需要动态分配内存空间,应该用在哪里?堆栈或堆。例如,我想要一个 char 数组来存储 10000 个字符,所以我应该使用:

char a[10000];

char *a = calloc(sizeof(char),10000);

“函数调用栈”和变量栈在同一个区域??在同一个栈还是不同的?

最佳答案

int numbers[m][n] 中,n 是内存中的连续整数,例如numbers[0][0] 后跟 numbers[0][1]

另一方面,假设 n=10,则 numbers[m][9] 后跟 numbers[m+1][0]

malloc 返回连续内存。您决定如何使用它。

堆栈上的 10000 字节数组没有问题,除非该函数是递归的,并且(如 Carey 所说)除非您在小型堆栈环境中开发,即。嵌入。

是的,调用堆栈和局部变量是相同的。

关于c - C 中的数组和 malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031566/

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