私はまだプログラミング/ C++ではなく、ポインタの周りを頭で囲み、参照やすべてを渡すことを試みています。今私が理解しようとしているプログラムは、構造体の配列を別の関数に渡す必要があります。私はそこに直接配列を渡すだけで動作しています。それはうまくいくようです。しかし、私が心配しているのは、値渡しであると信じているからです。構造体を参照渡しする方が良いことを理解していますので、毎回構造体のコピーを作成しているわけではありません。構造体の配列をC++での参照渡し
私が理解からstruct GoldenHelmet {
int foo;
string bar;
};
void pass (GoldenHelmet ofMambrino[], int size);
int main() {
GoldenHelmet ofMambrino[10];
int size = sizeof(ofMambrino)/sizeof(ofMambrino[0]);
ofMambrino[1].foo = 1;
pass(ofMambrino, size);
cout << ofMambrino[2].foo << endl;
return 0;
}
void pass (GoldenHelmet ofMambrino[], int size) {
ofMambrino[2].foo = 100;
ofMambrino[2].bar = "Blargh";
}
、配列がすでにポインタであるため、それが右、動作します:
とにかく、ここで私がやっているの基本的な例ですか?しかし、私はそれが設定されている方法は、私はまだ構造体のコピーを通過するすべてのパス()関数に?私は参考にしてそれを渡そうとしましたが、私が試した方法では動作したくないようです。
配列はポインタではありません。あなたが気絶するまでこのことを繰り返してください。その後、このサイトに戻って、それまでに投稿された回答を読んでください。 –
@NiklasBaumstarkいいえ、答えはC++になります:) – dasblinkenlight
@Kerrek SBご清聴ありがとうございます。私は[この投稿](http://forums.devshed.com/c-programming-42/how-to-passing-arrays-of-structures-61159.html)を読んでいたので、配列がポインタであることを暗示していたようでした。私はそれを調べ続ける必要があると思う。とにかく、皆さんの助けをいただきありがとうございます。 – Nate