Werte und Adressen



  • HI

    #include "mytypes.h" 
    struct Person {char vorname[30];char name[30];UINT geboren;UINT 
    gebSohn}; 
    int main() 
    { 
    struct Person p[5]={{"Zuebeyde","Hanin",1857,1881}, 
    {"Helena","Glinskaya",1506,1530}, 
    {"Barbara","Pierce",1925,1946}, 
    {"Klara","Poelzl",1860,1889}, 
    {"Letizia","Ramolino",1750,1769} }; 
    struct Person *ppa,*ppl; 
    void *ap,*lp; 
    int d1,d2; 
    ppa=&p[0]; 
    ap=ppa; 
    ppl=&p[4]; 
    lp=ppl; 
    d1=ppl-ppa; 
    d2=lp-ap; 
    }
    

    Hab mir folgendes Programm erstellt und möchte nun wissen welche werte jeweils d1,d2,lp,ap,ppl und ppa annehmen.
    wie bekomme ich das raus?
    und wie erweitere ich das progi dan so das ich die adressen bekomme?



  • Wenn auf der Maschine normale Worte und Adressen die gleiche Größe haben, kannst du einen Zeiger immer als Ganzzahl verwenden. Unter dieser Einschränkung kannst du sagen printf("%d", (int)ppa) , ohne etwas befürchten zu müssen.



  • MeEldorDo schrieb:

    Hab mir folgendes Programm erstellt und möchte nun wissen welche werte jeweils d1,d2,lp,ap,ppl und ppa annehmen.
    wie bekomme ich das raus?

    für d1,d2: printf("%d %d\n", d1 d1);
    für die zeiger gibts das p formatzeichen, keine cast nötig:
    printf("%p %p %p %p\n", lp,ap,ppl,ppa );

    MeEldorDo schrieb:

    und wie erweitere ich das progi dan so das ich die adressen bekomme?

    opa und oma fragen wo se wohnen und dann in die strutur eintragen!

    mfg


Anmelden zum Antworten