通知
すべてクリア
固定ページ 2 / 2
前へ
2011年9月27日 2:25 PM
解決後だけど
> void func(Array array) // 値渡しのつもり
だけど、実はポインタ渡しとなってしまう (俺の提示仕様1に基づく)。
値渡しされた仮引数は呼び出し元の実引数のコピーなので、仮引数を書き換えても
呼び出し元実引数は変わらない、というつもりで array[0] = 2.0; すると、
提示コードは実はポインタ渡しであるがゆえに、呼び出し元の配列を壊している。
要注意!
struct array_wrapper {
double array[3];
};
に対して void func(struct array_wrapper a) { ... } は真に値渡しとなる。
固定ページ 2 / 2
前へ