Initialisieren von Zeiger auf struct



  • Problem:

    Structure hans = {1,2,3};  //klappt
    
    Structure* joey;           
    *joey = {1,2,3};           //klappt nicht
    

    Compiler schrieb:

    15 main.cpp expected primary-expression before '{' token



  • Das ist keine Initialisierung, sondern eine Zuweisung. Da gelten andere Regeln.



  • obbba schrieb:

    ...
    [code]Structure hans = {1,2,3}; //klappt

    Structure* joey;
    joey = &hans; //klappt auch
    ...

    😉 Zuweisung eines "Zeigers auf struct" funktioniert also ....

    Du willst 2 Sachen auf einmal, was scheitern MUSS:
    - Ein struct anlegen und initialisieren und
    - einen Zeiger auf diesen stuct zeigen lassen.

    Das Erste hast Du vergessen in Deinem Beispiel. Ich würde an Deiner Stelle dem struct einen Konstruktor verpassen, dann bist Du etwas flexibler und kannst auch auf dem Heap arbeiten:

    Structure* joey;           
    joey = new Structure(1,2,3); // struct erzeugen und Adresse zuweisen in einem
    
    // delete nicht vergessen !!
    

    EDIT: HOPPS !!! 😮 Copy&Paste sind verführerisch und gefährlich !! Danke, Lord.

    Gruß,

    Simon2.



  • Hey, aber bitte nicht einer Struktur einen Zeiger zuweisen, danke 😃

    (Sprich: Das * muss weg)


Anmelden zum Antworten