Hi,
also ich dachte ich versuch ma auf C/C++ umzusteigen bzw meinen Horizont zu erweitern. Dabei bin ich auf dem Wikibook zu C auf das
Thema Speicherverwaltung und das Thema Zeiger gekommen. Zeiger und GC alles schön und gut. Selbst die Verwendung von Zeiger hab ich
mittlerweile auch drauf (denk ich jedenfalls xD). Was ich aber nicht verstehe ist folgendes: Ich hab das nachfolgende Programm
Und meines Verständnisses nach, weist der Compiler der Vaiable
der Wert 5 geschrieben. Dann wird im Programm der Pointer i bzw die Adresse auf die i zeigt um 1 (bzw 4 Byte):
Ich hab das ein paar mal gemacht und jedes mal kommen zwar verschiedene Speicheradressen raus. Aber immer die selbe Kombination "...enthält
5" und "...enthält -858993460".
WARUM?
Is des so weil der Compiler alle nicht verwendeten Speicherzellen mit dem Wert belegt? (War meine Theorie, die mir am plausiebelsten
vorkommt.)
also ich dachte ich versuch ma auf C/C++ umzusteigen bzw meinen Horizont zu erweitern. Dabei bin ich auf dem Wikibook zu C auf das
Thema Speicherverwaltung und das Thema Zeiger gekommen. Zeiger und GC alles schön und gut. Selbst die Verwendung von Zeiger hab ich
mittlerweile auch drauf (denk ich jedenfalls xD). Was ich aber nicht verstehe ist folgendes: Ich hab das nachfolgende Programm
Und meines Verständnisses nach, weist der Compiler der Vaiable
x
irgendeine Adresse zu. Dann wird in diese Adrese als Inhaltder Wert 5 geschrieben. Dann wird im Programm der Pointer i bzw die Adresse auf die i zeigt um 1 (bzw 4 Byte):
Speicheradresse 0046FC24 enthaelt 5
Speicheradresse 0046FC28 enthaelt -858993460
Ich hab das ein paar mal gemacht und jedes mal kommen zwar verschiedene Speicheradressen raus. Aber immer die selbe Kombination "...enthält
5" und "...enthält -858993460".
WARUM?
Is des so weil der Compiler alle nicht verwendeten Speicherzellen mit dem Wert belegt? (War meine Theorie, die mir am plausiebelsten
vorkommt.)
In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell