Zumindest hab ich manchmal das Gefühl, dass du die Links und Quellen nicht liest oder nur einmal drüber scrollst, kA. Da ich es verbrochen habe versuch ich das nochmal aus der Welt zu räumen.
Guck dir doch den Link den ich dir schon einmal gepostet hatte (noch)mal an:
http://www.cplusplus.com/doc/tutorial/pointers/
Die ersten 2 Beispiele mit Bildern. Da siehst du was im Code steht und der Speicher ist in den Bildern gezeigt. Das erklärt auch deine Fragen.
- Grundsätzlich speichert ein Zeiger eine Adresse
- Diese kann von einer anderen Variablen sein, z.B. durch das &.
- Oder eine Adresse im Speicher sein, den du dir manuell geholt hast. Der einzige Unterschied ist der, dass du den Speicher wieder manuell freigeben musst.
- Zeiger, die du nicht verwendest, solltest du auf 0 setzen damit du das auch erkennen kannst. Du darfst aber den Wert erst abfragen wenn er auf eine Speicheradresse zeigt.
Das mit der dem Anfang und der Größe war vermutlich eher verwirrender als Hilfreich ..., das ist eher Hintergrundwissen. Du könntest auch sagen: new reserviert mir Speicher und gibt mir die Adresse zurück. Das ist auch nichts anderes als &. Da bekommst du auch einfach eine Adresse, nur das du dich bei new selber darum kümmern musst den Speicher auch wieder frei zu geben.