Adresse - Integer - Parameter



  • Mit der Überschrift kann man wohl nicht direkt was mit anfangen, 😃
    darum hier mal in code:

    int address_to_int ( int* adress )
    {
    	int num = *adress;
    	return num;
    }
    
    int main() 
    { 
    	int test = address_to_int(10);
    

    Ist sowas iwie möglich? Ob sinnvoll oder nicht sei mal hinten angestellt.



  • Ohne Umwege kannst du nicht einfach wahllos auf Speicher zugreifen.



  • geht etwa so:

    int i; // eine variable
    int *p = &i; // adresse der variablen
    unsigned long l = (unsigned long)p;  // einen wert daraus machen
    // ... kürzer ...
    unsigned long m = (unsigned long)&i;
    

    ^^ d.h. mit 'nem cast geht fast alles.
    🙂



  • Statt

    int num = *adress;
    
    int num = (int)*adress;
    

    dann gehts.

    Ach ja, in deinem Beispiel kriegst du die Adresse von der lokalen Variable int* adress, die es nach dem return nicht mehr gibt.

    Wie ;fricky schon sagte, mit &variable kriegst du die Adresse der Variablen.
    &10 funktioniert allerdings nicht, weil 10 keine Adresse ist sondern eine Zahl.


Anmelden zum Antworten