Ich hatte Übungen aus Programmierung in C-Kursen und folgende Frage befolgt:
Was ist die Adresse von buf (der lokalen Variablen in der Hauptfunktion)? Geben Sie die Antwort entweder im hexadezimalen Format an (0x gefolgt von 8 "Ziffern" 0–9 oder a-f, wie 0xbfff0014) oder im dezimalen Format. Beachten Sie hierbei, dass wir die Adresse von buf möchten, nicht dessen Inhalt.
Der Code sieht wie folgt aus:
int main(int argc, char *argv[]) {
while(1) {
char buf[1024] = {0};
int r;
....
Also habe ich gdb
ausgeführt und einfach an der Zeile char buf[1024]
einen Breakpoint gesetzt und gdb
eingegeben.
p &buf
und das hat mir ein Ergebnis gegeben: 0xbffff0f0
aber wenn ich diese Nummer in diesem Quiz verwende, erhalte ich als Ergebnis, dass dieser Wert inkorrekt ist.
Meine Frage ist: Ist dies (p &buf) die Adresse der buf-Variablen? Oder, wenn nicht, warum nicht?
Die Übungen werden auf einer vorbereiteten VirtualBox-Maschine durchgeführt, also denke ich, dass jeder die gleichen Adressen haben sollte