ベクトルはコンパイル前からサイズ (次元) が分かっていて、それが小さければ、 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) {
// エラー処理
}
...
|