Zeiger in Int



  • Hallo!

    Wie kann ich es schaffen, dass folgende Anweisung klappt :

    *t->zahl = 12

    (also der Zahl 12 zuweisen..)

    #include <stdio.h>
    #include <stdlib.h>
    
    struct knoten
    {
      int zahl;
    };
    
    void main (void)
    {
    struct knoten *tt;
    int t;
    
    *tt = malloc(sizeof(struct knoten));
    
    t = tt;
    
    return 0;
    }
    

    mfg

    andy



  • #include <stdio.h>
    #include <stdlib.h>
    
    struct knoten
    {
      int zahl;
    };
    
    //void main (void)
    int main(void)
    {
    struct knoten *tt;
    int t;
    
    //*tt = malloc(sizeof(struct knoten));
    tt=malloc(sozeof(struct knoten));
    //t = tt;
    t=tt->zahl;
    //oder doch
    tt->zahl=12;
    //?
    
    return 0;
    }
    

    Was willst du denn genau machen?



  • #include <stdio.h> 
    #include <stdlib.h> 
    
    typedef struct { 
      int zahl; 
    } knoten; 
    
    int main (int argc, char **argv) 
    { 
    knoten *t; 
    int z = 10; 
    
    t = (knoten*)malloc(sizeof(knoten)); 
    
    t->zahl = z;
    
    printf("%d", t->zahl);
    
    return 0; 
    }
    


  • hi,

    bist du sicher das jenes was du gepostet hast auch funktioniert (abgesehen das es "sizeof" heisst und nicht "sozeof", sicher ein tippfehler? bei mir (vc) geht es nicht.

    gruss
    msp



  • @msp
    Andy123s Code funzt auch net, denn er

    1. reserviert falsch speicher
    2. will ein struct an ein int zuweisen und
    3. castet auch nicht beim allokieren



  • hi,

    habe gerade rausgefunden was der fehler war. den hast du aber schon berichtigt.

    gruss
    msp



  • GPC schrieb:

    3. castet auch nicht beim allokieren

    Was kein Fehler ist - dein Code ist zwar nicht falsch aber unüblich und kann in C89 zu komischen Fehlern führen...

    Denn in C castet man nicht.


Anmelden zum Antworten