|
きっと質問者は「配列の最大個数は1000までです」というような回答を
期待していたんだと思います。その期待に沿った回答をしてみようかな。
間違っていた場合は訂正お願いします。
例えば私の使っているVC6のヘルプによると、ヒープもスタックも
デフォルトの設定では1MBだそうです。
単純計算すると、4バイトのint型なら25万個使えることになります。
ヒープ領域もスタックも、配列の変数のためだけに使うわけではないので、
実際に25万個使えるわけではないですが。
実際に↓で試すと、
#include <stdio.h>
#include <conio.h>
#define NUM 258514
int main()
{
int data[NUM], i, sum = 0;
for (i=0;i<NUM;i++)
data[i] = 1;
for (i=0;i<NUM;i++)
sum += data[i];
printf("NUM = %d\nsum = %d\n", NUM, sum);
// quit
printf("End.\n");
getch();
return 0;
}
258514が限界でした。あれ?258514>25万 と思ったら、
1MB / 4B = 1024 * 1024 / 4 = 262144 > 258514でした。
まあ、妥当な数字か。
環境依存であることをお忘れなく。コンパイラやコンパイル
オプション、他の変数や構造体の数と型、関数の呼び出しの
深さなどの影響を受けます。
|