c - 大型字符缓冲区是否可以在 C 中使用

标签 c

我需要在内存中存储一​​个“大”文件(比如小于 2mb),我想知道是否可以直接使用

char buffer[2048000];

有没有更好的处理方式?使用大型字符数组有任何性能问题吗?

最佳答案

是的,可能会有问题,如果它是一个自动存储持续时间的变量,大多数 C 实现将在堆栈上分配该缓冲区,并且可供使用的“堆栈内存”量可能非常小。

最好的办法是对大于几千字节的任何内容使用 malloc。请记住在适当的时候调用 free

将其设为static 是另一种可能性,或者将其设为全局可能会有所帮助。

关于c - 大型字符缓冲区是否可以在 C 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504437/

相关文章:

c - -1 不小于 12?

iphone - 编码为 NSValue 结构数组

C - 反转字符串数组中单词的顺序

c - double - 最大值

c - 欺骗 libdc1394

c++ - Windows WMI - Win32_ProcessStartTrace 和 __InstanceCreationEvent 之间的区别(和顺序)是什么?

c++ - 在 C++ 中添加两个日期

将 unicode 文件的包含内容复制到 c 中的 char 数组中

c - 浮点异常和太大的常量警告?

无法让简单的 GTK3 应用程序运行