tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Matthias Reitinger
  • 1 Beitrag von vfl_freak
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
254
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    noxum noxum ist offline Mitglied Bronze
    Registriert seit
    Mar 2011
    Beiträge
    32
    Guten Abend,

    ich hab da mal eine kleine Frage zu den Adressen von Variablen.
    Und zwar habe ich mir das immer so vorgestellt: Bei jedem Start von einem Programm werden die Variablen auf einen zufälligen Platz im Speicher gelegt, wodurch sie jedes mal eine neue Adresse besitzen.

    Jetzt hab ich dies aber mal bei einem von mir geschriebenen Programm getestet und siehe da, die Adresse war immer gleich.
    Also wollte ich euch einmal fragen wie das genau abläuft ? In meinem Buch "C++ von A bis Z" habe ich leider nichts gefunden. Wo liegt mein Denkfehler?


    Danke für jede Antwort und noch einen schönen Abend.

    Noxum
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Hallo noxum,

    wenn dein Programm immer auf dieselbe Weise abläuft (also nicht von Eingaben abhängig ist), werden in der Regel(*) bei jedem Lauf dieselben Speicheradressen vergeben. Das gilt insbesondere für Variablen auf dem Stack, welcher immer(*) an derselben Speicheradresse beginnt. Aber auch Variablen auf dem Heap landen bei identischen Speicheranfragen bei jedem Lauf normalerweise(*) an derselben Adresse.

    Grüße,
    Matthias

    (*): Es sei denn es kommt ASLR o.ä. zum Einsatz.
    Geändert von Matthias Reitinger (20.10.11 um 23:35 Uhr)
    noxum bedankt sich. 
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    noxum noxum ist offline Mitglied Bronze
    Registriert seit
    Mar 2011
    Beiträge
    32
    Achso okey vielen Dank für deine schnelle Antwort.
    Hab ich mal wieder etwas gelernt


    Noxum

    EDIT:
    Ah eine Frage habe ich dann doch noch. Wird die Adresse beim ersten Ausführen festgelegt oder beim Compilieren ?
    Geändert von noxum (21.10.11 um 00:12 Uhr)
     

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    Zitat Zitat von noxum Beitrag anzeigen
    eine Frage habe ich dann doch noch. Wird die Adresse beim ersten Ausführen festgelegt oder beim Compilieren ?
    Auf jeden Fall erst zur Laufzeit ... woher sollte der Compiler das wissen ?
    Es wäre ja auch fatal, wenn ein Compiler versuchen würde, Speicher zu reservieren

    Gruß
    Klaus
    noxum bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

Ähnliche Themen

  1. Prüfen einer Email-Adresse
    Von chainy24 im Forum PHP
    Antworten: 7
    Letzter Beitrag: 07.02.10, 12:38
  2. Signatur einer Adresse / Little Endian
    Von yunses im Forum Coders Talk
    Antworten: 0
    Letzter Beitrag: 07.12.08, 14:43
  3. Antworten: 4
    Letzter Beitrag: 05.09.07, 09:44
  4. PHP Adresse ín variablen umbauen.
    Von sterndi im Forum PHP
    Antworten: 5
    Letzter Beitrag: 05.05.07, 21:34
  5. Das # aus einer Adresse im Browser erkennen
    Von JaguarGorgone im Forum PHP
    Antworten: 6
    Letzter Beitrag: 09.01.05, 04:25