Array als return-Wert übergeben



  • Hallo,
    ich möchte eine Funktion aufrufen, die mir als Returnwert ein Array liefert. Im Beispiel unten soll ein Array mit dem selbst erstellten Datentyp "StrukturierterDatentyp" zurück gegeben werden. Bekomme aber immer Fehlermeldungen. Hab es auch mal mit Zeigern versucht, klappte aber auch nicht. Kann mir jemand sagen wie ich das machen muss?
    Danke

    #include <conio.h>
    #include <stdio.h>
    
    //-----------------------------------------------------------------------------
    
    struct StrukturierterDatentyp
    	{
    		int a;
    	};
    
    struct StrukturierterDatentyp TestFunktion(void);
    
    //-----------------------------------------------------------------------------
    
    int main(void)
    {
    	struct StrukturierterDatentyp Rueckgabe;
    
    	Rueckgabe=TestFunktion();
    
    	FILE *datei;
    	datei = fopen ( "Ausgabe.txt" , "w" );
    	fprintf (datei,"%d",Rueckgabe[0].a);
    	fclose (datei);
    
    	return 0;
    }
    
    //-----------------------------------------------------------------------------
    
    struct StrukturierterDatentyp TestFunktion(void)
    {
    	struct StrukturierterDatentyp Datensatz[2];
    
    	Datensatz[0].a=1;
    	Datensatz[1].a=2;
    
    	return Datensatz;
    }
    


  • du verlässt den scope somit wird "Datensatz" zerstört
    http://tutorial.schornboeck.net/variablen.htm
    http://tutorial.schornboeck.net/los/scope.htm

    benutz mal die forensuche "rückgabewert" und du wirst mehrere lösungen finden.


Anmelden zum Antworten