Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
void Func(const std::vector<MyClass*>& data) { std::vector<MyStruct*> foo(count); std::vector<MyClass*>::const_iterator it = data.begin(); for ( ; it != data.end(); ++it ) foo.push_back(*it); Func2(&foo[0]); } void Func2(MyStruct* pStructArray) { // ... } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
void Func(const std::vector<MyClass*>& data) { std::vector<MyStruct*> foo(count); // Also count beschreibt die Anzahl an Elementen, die bekannt ist (wenn ich das richtig verstanden habe)... std::vector<MyClass*>::const_iterator it = data.begin(); for ( ; it != data.end(); ++it ) foo.push_back(*it); //... dann wird dieser reservierte Speicher erst gar nicht angerührt, denn es werden einfach neue Elemente hinzugefügt ?? // Und noch was: wieso wird hier ein Zeiger auf MyClass übergeben, wenn man doch MyStruct erwartet. Auf jeden Fall habe ich die Zeile so geändert: foo.push_back((*it)->pMemStruct) // Ich hofe ich habe somit keinen großen Fehler begangen. Func2(&foo[0]); // Das will der Compiler nicht kompilieren. Deswegen ändere ich die Zeile so: Func2(foo[0]); // Leider wird hier nur ein Element übergeben, wenn ich mich nicht täusche... } void Func2(MyStruct* pStructArray) { // ... } |
Zitat von »"Deviloper"«
Hmm naja warum ist pMemStruct ein Zeiger und keine Referenz?
C-/C++-Quelltext |
|
1 2 3 4 |
class MyClass
{
MyStruct pMemStruct;
};
|
C-/C++-Quelltext |
|
1 |
Func2(&pClass[0].pMemStruct); |
Nein. Das macht es definitiv nicht. Weiß nicht wer euch immer einbleut das Zeiger das allheilmittel wären. Referenzen sollten Zeigern sogar bevorzugt werden und sind als solche auch einfacher zu handhaben.Zitat
Weil das alles unnötig kompliziert macht.
Zitat von »"Deviloper"«
Nein. Das macht es definitiv nicht. Weiß nicht wer euch immer einbleut das Zeiger das allheilmittel wären. Referenzen sollten Zeigern sogar bevorzugt werden und sind als solche auch einfacher zu handhaben.Zitat
Weil das alles unnötig kompliziert macht.
Werbeanzeige