c - 如何在 C 中设置 20 mbs 的数组大小

标签 c

<分区>

如何创建大小为 20 MB 的 int 数组?

我是否必须使用 mallocsbrk 或其他东西?

最佳答案

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/

相关文章:

c - 如何使用 flex/bison 生成代码并将其放入文件

c++ - 线程参数的高效快速方法

c - OpenCV - 显示网络摄像头视频时出错

c++ - 在 OoOE 处理器中,内存存储真的可以重新排序吗?

c - 如何获取目录 smb libcurl 中的文件列表?

c - 从 C 中机器代码形式的文本文件中读取字节?

c++ - 这两者在位操作方面有什么区别?

c - 最大直径小车可操纵

c - EAGAIN 是什么意思?

c++ - 在 C++ 类中使用 Objective-C SDK