Array zurückgeben
-
Hi,
ich gebe aus einer Funktion ein Array mit 6 ints zurück:
int* getIndices(int startIndex);
Kann ich irgendwie sichtbar machen, dass da immer ein int[6] geliefert wird?
-
Zeig mal was du vor hast, ich ahne irgendwie, dass das nicht funktioniert. Du könntest auch einen std::vector zurückgeben, spricht da etwas dagegen?
@Die Langsamen: :p
-
Nein, du übergibst kein Array auf diese Weise, sondern nur einen Zeiger (der vermutlich auf undefinierten Speicher zeigt, nachdem die Funktion hinter sich abgeräumt hat).
-
Darf ich mal so dreist sein und behaupten, dass du es sowieso falsch machst und dich erst einmal da drum kümmern solltest?
-
cooky451 schrieb:
Zeig mal was du vor hast, ich ahne irgendwie, dass das nicht funktioniert. Du könntest auch einen std::vector zurückgeben, spricht da etwas dagegen?
@Die Langsamen: :p
Wieso einen vector, wenn die größe konstant ist? Finde ich sinnfrei. Dann eher ein arra<int, 6>. Ich glaub ich returne das Array jetzt einfach als out Parameter.
-
Arraya schrieb:
Wieso einen vector, wenn die größe konstant ist? Finde ich sinnfrei. Dann eher ein arra<int, 6>. Ich glaub ich returne das Array jetzt einfach als out Parameter.
Ich ignoriere TR1.

-
cooky451 schrieb:
Arraya schrieb:
Wieso einen vector, wenn die größe konstant ist? Finde ich sinnfrei. Dann eher ein arra<int, 6>. Ich glaub ich returne das Array jetzt einfach als out Parameter.
Ich ignoriere TR1.

boost::array :p
-
Arraya schrieb:
ich gebe aus einer Funktion ein Array mit 6 ints zurück:
int* getIndices(int startIndex);Nein, tust Du nicht. Du gibst einen Zeiger zurück. Wo zeigt der denn hin und wie lange lebt das / soll es leben, worauf er zeigt?
Arraya schrieb:
Kann ich irgendwie sichtbar machen, dass da immer ein int[6] geliefert wird?
array<int,6> getIndices(int startIndex);
( aus boost:: oder std::tr1:: oder std:: )
Bei der Gelegenheit möchte ich einen Vortrag empfehlen, den ich gestern gesehen habe. Da geht es um "modernes C++".
http://www.c-plusplus.net/forum/292795