Speicherverbrauch von Pointern...
-
Tach nochmal,
Also ein Ptr belegt doch immer die gleiche Menge an Speicher oder?
ALSO BSP:
struct DEMO { char szBuf[100]; long lValueLong; int iValueInt; }; DEMO* pDemo; int* piValue;
Ich meine nicht sizeof(), sondern die Belegung der Adressen der Zeiger ...
Danke...

MfG CodeFinder
-

Zeiger haben immer 4 Byte auf 32 Bit, 8 Byte auf 64 Bit, die Struktur selbst ist natürlich so groß wie die enthaltenen Daten.
Wie war die Frage?

-
Der Pointer selber belegt normalerweise immer gleich viel Speicher (ist aber afaik nicht vorgeschrieben) - allerdings sind die Daten, auf die er zeigt, unterschiedlich groß.
-
Danke Frage schon beantwortet, bzw. meine Aussagen bestätigt

allerdings sind die Daten, auf die er zeigt, unterschiedlich groß.
war mir klar

ok THX!
MfG CodeFinder
-
Methoden-Pointer brauchen gewöhnlich die doppelte Menge an Speicher:
#include <iostream> using namespace std; class foo{}; int main() { void(foo::*bar)(); int *x; cout << sizeof(bar) << endl; cout << sizeof(x) << endl; }
-
<strong>ACHTUNG!!!</strong> schrieb:
Methoden-Pointer brauchen gewöhnlich die doppelte Menge an Speicher:
#include <iostream> using namespace std; class foo{}; int main() { void(foo::*bar)(); int *x; cout << sizeof(bar) << endl; cout << sizeof(x) << endl; }dabei ist zu beachten, dass einige compiler die angewohnheit haben, memberfunktionspointer nicht-standardkonform zu optimieren (was man per compilerschalter abschalten kann). für den größten zeiger braucht man dann virtuelle basen und virtuelle memberfunktionen.