私は次のコードを持っていると言います。関数呼び出しが終了した後に配列の内容を保持する。 (C++)
double *return_array(void) {
double foo[2];
foo[0] = 5;
foo[1] = 6;
cout << foo << endl;
cout << foo[0] << endl << foo[1] << endl;
return foo;
}
double *bar = return_array()
cout << bar << endl;
cout << bar[0] << endl << bar[1] << endl;
今、barとfooは同じポインタですが、そこにあったものは完全に変更されています。どうすればこの問題を回避できますか?基本的には、関数から6または9の倍数を渡す必要があります。私は何をすべきか?
以下の良い返信に加えて、固定数の値がある場合、構造体クラスを作成して代わりに返すことができます。値の用途に応じて、読み込み/処理がより簡単になる場合があります。代わりにg = foo [gravity]を使用してください:g = foo.gravity –