struct-Zeiger an Funktion übergeben



  • Guten Tag!

    Ich stehe vor einem großen Problem. Ich möchte einen struct-Zeiger an eine Funktion übergeben. Da ich nicht die Variable kopieren möchte, muss ich sie anders übergeben. Jedoch ist in der Sprache C kein Referenzparameter möglich, sondern nur ein Call-by-Pointer. Ich bin da auch nicht wirklich begabt mit Zeigern...
    Konkret sieht es so aus:

    #include <SDL/SDL.h>
    #include <SDL/SDL_ttf.h>
    
    int main()
    {
    	...
    	TTF_Font *Schrift; //"TTF_Font Schrift;" nicht möglich
    	LadeSchrift(&Schrift, "Arial.ttf", 24);
    	...
    }
    
    int LadeSchrift(TTF_Font *Schriftzeiger, char *Schriftdatei, int Schriftgrad)
    {
    	Schriftzeiger = TTF_OpenFont(Schriftdatei, Schriftgrad);
    	...
    }
    

    Hoffe, ihr versteht was ich meine.

    Liebe Grüße
    Kerla



  • Du willst den Zeiger aus der Main verändern, also mußt Du einen Zeuiger darauf übergeben! Also einen Zeiger auf einen Zeiger.

    int LadeSchrift(TTF_Font **Schriftzeiger, char *Schriftdatei, int Schriftgrad)
    {
    	*Schriftzeiger = TTF_OpenFont(Schriftdatei, Schriftgrad);
    	...
    }
    


  • Danke, Volkard! Es klappt nun!


Anmelden zum Antworten