4

C プログラムのメモリ制限を増やす方法を教えてください。コードブロックを使用して、次のコードを試しています-

int arr[10000000]

実行時エラーが発生しています。Linux(Fedora)を使用しています。助けて…?

4

2 に答える 2

3

この宣言はどこで行われますか? Linuxマシンのメモリに収まるはずですが、特別なアクション(例:)を行わない限り、おそらくスタックには収まらないと思いますulimit -s。一般に、大規模なローカル C スタイル配列を使用することはお勧めできません。実際、特別な場合を除いて、ローカル配列を使用することはまったくお勧めできません。C++ の通常の配列と同じように定義するだけです。

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

これにより、実際のデータがヒープに移動されます。ヒープは、おそらくそのような大規模なデータ セットが属する場所です。

于 2013-01-04T18:33:02.693 に答える
0
int arr[10000000];

それは私にとってはうまくいきます..これはC::Bに依存しているとは思いません.これはあなたのコンピューターからのものだと思います.

于 2013-01-04T18:30:13.047 に答える