• ベストアンサー

プログラミング

画像のようなプログラムを作成したのですが乱数が120万個欲しいのですが実行しても何も表示されないです。自分で色々確かめてみたのですが12万回までならプログラムを実行することができるのですがそれ以上になると実行することができないのですが原因がわかる方がいれば教えていただきたいです。よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

大量の配列確保しようとしたけど、メモリが足りなかったって事では。 フツーに配列を宣言した時に確保される静的領域はそんなに大きくないです。 そういう大量のデータを扱う場合は、動的領域(ヒープ領域)のメモリを確保して使用するのが一般的です。 #define N 10000000 double d[N]; d[50000]=0.0; ↓ double *pd; pd = malloc(N * sizeof(double)); if(pd==NULL){printf("メモリ不足\n");exit(1);} pd[50000]=0.0; free(pd); って感じに書き換えるとか。 動的領域とか、mallocとかのキーワードで情報収集するのが良いかも。

mothiduki
質問者

お礼

情報集めてみます ありがとうございます

その他の回答 (1)

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.2

Bard AIが下記のように答えてくれました ---------- C で記述されたプログラムです。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int random_numbers[1200000]; srand(time(NULL)); for (int i = 0; i < 1200000; i++) { random_numbers[i] = rand() % 100; } for (int i = 0; i < 1200000; i++) { printf("%d\n", random_numbers[i]); } return 0; } ---------- 120万個の乱数を生成できるPythonプログラムです。 import random random_numbers = [] for i in range(1200000): random_number = random.randint(0, 100) random_numbers.append(random_number) print(random_numbers)

関連するQ&A