【问题标题】:code blocks memory limit代码块内存限制
【发布时间】:2023-03-23 21:38:01
【问题描述】:

如何增加 C 程序的内存限制。我正在使用代码块并尝试以下代码 -

int arr[10000000]

它给了我运行时错误。我正在使用 Linux(Fedora)。 有什么帮助...?

【问题讨论】:

  • ulimit -s unlimited 如果你真的是铁杆的话。但是你也可以在堆上分配这么大的一个。
  • 你能告诉我把这个ulimit声明放在哪里吗....?
  • 从未使用过 Code::Blocks,所以我不知道(如果您正常运行程序,它将是 shell)。但无论如何我都不会推荐它。那句话是诙谐的。 int *arr = new int[10000000]; 会更好。

标签: c++ memory-management codeblocks memory-limit


【解决方案1】:

这个声明出现在哪里?我认为它应该适合 Linux 机器的内存,但可能不在堆栈上,除非 您采取了特殊行动(例如ulimit -s)。一般来说,它是 使用大型本地 C 样式数组不是一个好主意——事实上, 除非在特殊情况下,使用本地不是一个好主意 数组。只需像定义任何普通数组一样定义它 C++:

std::vector<int> arr( 10000000 );

这会将实际数据移到堆上,这可能是 如此大的数据集所属的地方。

【讨论】:

    【解决方案2】:
    int arr[10000000];
    

    它对我有用.. 我不认为这取决于 C::B,我认为这是来自您的计算机。

    【讨论】:

    • 关于如何增加内存限制或纠正此问题的任何想法..?
    猜你喜欢
    • 2014-02-15
    • 1970-01-01
    • 2013-02-05
    • 2012-12-30
    • 2016-11-15
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多