array aus einer funktuion zurückgeben??
-
HI leute ! wie gibt man den arrays aus einer funktion zurück?
char verschluesselt(char wortorg[],char key[])
{
char krypt[255];
int i=0;while(wortorg[i])
{
krypt[i]=wortorg[i];
i++ ;
}
i++;
krypt[i]='p';return krypt; //????????????????????????????????? fehlermeldung!!!!
}wäre für hilfe sehr dankbar!
-
Du willst ein char[255] in ein einzelnes char konvertieren, kann doch gar nicht funktionieren, wie stellst Du Dir das vor?
Schau Dir mal std::string und die FAQ an:
-
wiso willst du überhaupt ein array zurückgeben? Arrays sind immer pointer.
also kannst du z.B die fuktionvoid __fastcall huhu(char *huhu,char *selberhuhu,int Length) { for (int i =0;i< Length;i++) { selberhuhu[i] = huhu[i]; } }
so aufrufen
char a[10], b[10]; strcpy(a,"1234567890"); huhu (a,b,10);
Das würde b gleich a setzen
[ Dieser Beitrag wurde am 02.05.2003 um 10:51 Uhr von mwoidt editiert. ]
-
wenn schon dann must du einen pointer auf char als rückgabetyp angeben... nur dummerweise wird auch das array am ende der funktion zerstört werden weil es ja lokal ist dann hast du zwar einen pointer aber der zeigt auf nicht reservierten speicher... wenns chon dann kann man z.b. pointer auf statische variablen zurückgeben oder sonst muss man den speicher in der funktion alloziere aber das ist keine sehr gute idee weil dann muss man sich seber drumm kümmern den speicher weider frezugeben...
(naja könnte man mi auto_ptr machen...)
-
Original erstellt von <hillbongo1976>:
**HI leute ! wie gibt man den arrays aus einer funktion zurück?
**gar nicht. ist sich verboten.
ne referenz auf ein feld würde man so machen:int (&f())[2] { static int a[2]; a[0]=4711; a[1]=0815; return a; }
aber die syntax ist so schrecklich, daß du am besten nur nen zeiger aufs erste element zurückgibst.
edit: nee, hör auf mwoidt.[ Dieser Beitrag wurde am 02.05.2003 um 16:43 Uhr von volkard editiert. ]