next up previous contents
Next: D.8 C で書かれたライブラリィとのリンク Up: D. C++ を使ってみよう Previous: D.6 複素数の扱い

D.7 new と delete … 動的メモリー確保

C++ では、動的にメモリーを確保するには、new 演算子を用いる。 メモリーの解放には delete 演算子を用いる。
double *u;
...
u = new double [N+1];
if (u == NULL) {
  /* エラー処理 */
  cerr << "u[] のメモリー確保に失敗しました。" << endl;
  exit(1);
}
(ここから後は double u[N+1]; のように配列として 定義したのと殆んど同様に扱える。)
...
/* メモリーの解放 */
delete [] u;

なお、C++ の場合は実行文の後に変数定義をすることも出来るので、
  ...
  cout << "区間の分割数 N: "; cin >> N;
  double u[N+1], newu[N+1];
  ...

のようにプログラムを書くことも可能である (と思っていたのだが、 もしかするとこれD.2は GCC 拡張な のか?使わない方が無難かも知れない。)。


next up previous contents
Next: D.8 C で書かれたライブラリィとのリンク Up: D. C++ を使ってみよう Previous: D.6 複素数の扱い
Masashi Katsurada
平成18年4月28日