3.11.1 方針

ベクトルはコンパイル前からサイズ (次元) が分かっていて、それが小さければ、 1 次元配列で扱うのが簡単であろう。 サイズが大きい場合に自動変数 (関数の中で宣言する変数) として宣言するのは、 避けるべきである。

サイズが事前に分からないか、分かっていても大きい場合は、 malloc() で動的に割りあてるのが良いであろう。

double a[1000]; // 1000を変数にすることは出来ない

int main(void)
{
  double b[1000]; // 大きなデータは難点あり。スタックサイズ不足で Seg fault 等

  double *c;      // おすすめ
  c = malloc(sizeof(double) * 1000); // 1000を変数にも出来るし、大きくても大丈夫
  if (c == NULL) {
    // エラー処理
  }
  ...



桂田 祐史