1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Speicherabbild und Adressen

  • xxyy
  • 17. Januar 2007 um 23:04
  • Unerledigt
  • xxyy
    6
    xxyy
    Mitglied
    Punkte
    350
    Beiträge
    57
    • 17. Januar 2007 um 23:04
    • #1

    Hallo Leute,


    hab eine "kleine" Aufgabe die ich nicht so ganz verstehen kann.


    Geben Sie das Speicherabbild des folgenden Programms vor Aufruf von printf() an.


    Code
    #include <stdio.h>
      main()
    {  double vek[3] = { 1.2, 3.0, 5.2 };
       double *v0 = &vek[0];
       double *v1 = &vek[1];
       double *v2 = &vek[2];
       double sum;
         sum = *v0 + *v1 + *v2;
       printf("Summe: %f\n", sum);
       return 0;
    }
    Alles anzeigen


    Hinweis: Die Adressen der Variablen lassen sich durch geeignete Ausgabeanweisungen bestimmen.


    Ich verstehe nicht wirklich was gemeint wird. Um das Ergebnis zu kennen brauche ich ja nicht unbedingt printf, denn das sieht man ja so.


    Oder geht es speziell um die Speicherstellen der Variablen? Ich verstehe das irgendwie nicht...


    Vielen Dank fürs Lesen!

  • xxyy
    6
    xxyy
    Mitglied
    Punkte
    350
    Beiträge
    57
    • 18. Januar 2007 um 20:48
    • #2

    Ich habe etwas herumgesucht und habe bei Wikipädia bisschen was rausgefunden...

    Und zwar bekomme ich die Adresse von sum, indem ich die Ausgabe von sum so verändere

    Code
    printf("Summe: [b]%p[/b]\n", [B]&[/B]sum);


    So bekomme ich bei der Ausgabe 0012FF18.

    Wird das gemeint?

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 19. Januar 2007 um 15:55
    • #3

    hm.. ja kann schon sein dass da sowas wie

    Code
    printf("vek: %d\n", vek);
        printf("vek[0]: %d | vek[1]: %d | vek[2]: %d\n", &vek[0], &vek[1], &vek[2]);
        printf("v0: %d | v1: %d | v2: %d\n", v0, v1, v2);
        printf("sum: %d\n", &sum);

    gefragt ist, vielleicht will der lehrer darauf aufmerksam machen dass ein array dass im speicher steht die elemente hintereinander gespeichert hat und die array variable selbst (also vek) die selbe speicheradresse hat wie vek[0], man kann also auch auch vek[2] zugreifen indem man schreibt

    vek + 2 = 10; (sollte man allerdings nicht machen)

    das wäre dann dasselbe wie vek[2] = 10;

    Code
    vek: 1245020
    vek[0]: 1245020 | vek[1]: 1245028 | vek[2]: 1245036
    v0: 1245020 | v1: 1245028 | v2: 1245036
    sum: 1245012

    das wäre zb die ausgabe bei mir, aber ehrlich gesagt hab ich auch keinen plan was da mit speicherabbild gemeint ist

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern