allgemeine frage zu C



  • Also ich habe einige allgemeine Fragen zu C

    1. Warum und wann benutzt man typedef?

    2.Wann definiert man einen Speicher mit malloc und wann nicht ?

    3. Wann benutzt man einen Zeiger?

    Kann mir jemand bitte antworten.
    Danke!!!!!!!!



    1. Wenn man einen Typen definieren möchte.
    2. Wenn das Objekt nicht auf den Stack passt, oder man seine Größe nicht zur Compiletime kennt.
    3. Wenn man einen benötigt. (Wann benutzt man einen integer?)

    greetz, Swordfish



  • Also

    typedef= man definiert einen Typen-= definiert eine Struktur oder wie??

    Hat ein Stack so viel speicher wie seine Variabale erlaubt heißt char= 1byte??

    Danke!!



  • Swordfish schrieb:

    1. Wenn man einen Typen definieren möchte.
    2. Wenn das Objekt nicht auf den Stack passt, oder man seine Größe nicht zur Compiletime kennt.
    3. Wenn man einen benötigt. (Wann benutzt man einen integer?)

    greetz, Swordfish

    zu 2. kann man auch noch sagen: wenn man ein Objekt braucht, welches global benutzt werden soll (nicht mit globalen Variablen verwechseln), z.b. ein Objekt, welches zwar in foo() erzeugt wurde aber nach Beendigung von foo() weiterhin "leben" muss. Und das ist auch ein Argument für 3. denn da benötigst du Zeiger, die auf die mit malloc erzeugten Objekte zeigen.



  • @Supertux: Danke für's ergänzen! 😉

    ken schrieb:

    typedef= man definiert einen Typen-= definiert eine Struktur oder wie??

    Mit typedef definiert man Typen - ganz allgemein. Ob das zufällig eine struct ist, ist egal:

    typedef unsigned char byte_t;
    
    struct foo_t {
    
        int bar;
    };
    
    typedef struct foo_t my_foo_t;
    

    ken schrieb:

    Hat ein Stack so viel speicher wie seine Variabale erlaubt heißt char= 1byte??

    Hä?

    greetz, Swordfish



  • ken schrieb:

    Hat ein Stack so viel speicher wie seine Variabale erlaubt heißt char= 1byte??

    Hä?
    google hilft. die stack-größe wird gewöhnlich vom compiler/linker vorgegeben bzw. sie ist in den optionen einstellbar


Anmelden zum Antworten