Adresse ist int ?



  • Ja mal eine Frage.

    Die Adresse auf z.B. eine Strukur ist eigentlich doch nichts anderes als ein int?

    struct ETWAS *p_Etwas;
    int iWert;
    
    p_Etwas = malloc(sizeof(struct ETWAS));
    
    iWert = (int)pEtwas;
    
    printf( ((ETWAS*)iWert)->element );
    

    hier etwas vereinfacht. Ich habe mal ein Beispiel programmiert. Und es funktioniert. Der Compiler sagt nichts. Und es funktioniert.

    Abgesehen mal vom Sinn. Gibt es etwas was dagegen spricht. 😃



  • faerk schrieb:

    Gibt es etwas was dagegen spricht. 😃

    nein. Du kannst dir den Speicherwert eines Zeiger so vorstellen, als würden sie die Stelle (oder die Stelle der Zelle) des RAMS speichern, auf die der Zeiger zeigt. Das ist ok.



  • Adresse ist int ?

    Besser gesagt man kann eine Adresse in einem Integer speichern.



  • ...jedenfalls, sofern sizeof(int) >= sizeof(ETWAS*). Das muss aber nicht der Fall sein - portabel ist der Code auf die Art nicht.


Anmelden zum Antworten