<分区>
如何创建大小为 20 MB 的 int
数组?
我是否必须使用 malloc
或 sbrk
或其他东西?
标签 c
<分区>
如何创建大小为 20 MB 的 int
数组?
我是否必须使用 malloc
或 sbrk
或其他东西?
最佳答案
malloc
如果您想要 20MB 之类的东西,通常是个好主意。大多数堆栈都比较小,如果你尝试的话会导致程序崩溃。
int *myInts = (int *)malloc(20*1024*1024);
或将其作为静态/全局变量:
int myArray[20*1024*1024/sizeof(int)];
或使用sbrk
int *myInt = sbrk(0); /* Get the current pointer */
sbrk(20*1024*1024); /* Now increase it */
但是正如手册页所说“避免使用 sbrk
”。唯一应该使用 sbrk
的情况是在实现自己的内存分配器时。
关于c - 如何在 C 中设置 20 mbs 的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13812246/