スタックが小さすぎます。new を使用して、これをヒープに置きます。
int* genotype = new int[150000000];
そして、以下が役立つことを願っています。
- signed char: -127 から 127 (-128 から 127 ではないことに注意してください。これは 1 の補数プラットフォームに対応します)
- 符号なし文字: 0 ~ 255
- "plain" char: -127 から 127 または 0 から 255 (デフォルトの文字符号に依存)
- 符号付き短縮: -32767 ~ 32767
- unsigned short: 0 ~ 65535
- 符号付き整数: -32767 ~ 32767
- 符号なし整数: 0 ~ 65535
- 符号付きロング: -2147483647 ~ 2147483647
- unsigned long: 0 ~ 4294967295
- 署名された long long: -9223372036854775807 から 9223372036854775807
- unsigned long long: 0 ~ 18446744073709551615
または、 limit.h を使用して、プログラムが何に依存しているかを調べることができます。たとえば、これは int の最大範囲を見つける方法です。
子:
#include <limits.h>
const int min_int = INT_MIN;
const int max_int = INT_MAX;
C++
#include <limits>
const int min_int = std::numeric_limits<int>::min();
const int max_int = std::numeric_limits<int>::max();