Announcement

Collapse
No announcement yet.

Pointer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pointer

    Hi,
    hab mal n paar Fragen zum Thema Pointer(verbessert mich wenn ich im folgendem Fehler mache):
    Wenn ich n Pointer anmelde, z.B. int *a,*b;
    dann kann ich ihm ja eine Speicheradresse zuweisen. Entweder die von b, a=b; oder die einer statischen Variablen wie int c; dann aber mit dem Adressoperator &, a=&c;.
    Genau so geht es ja auch andersum. Den Inhalt der Variablen auf die ein Zeiger zeigt, einer statischen Variablen zuweisen, dann aber mit dem"Dereferenzierungsoperator"(?) * , c=*a;. Nun aber paar Fragen, also kann ich diese Operatoren & und * auch andersrum benutzen ? also welchen Sinn hätte eine Zeile wie diese a=*c; oder c=&a;. Oder ist das totaler Schwachsinn und geht sowieso nicht?
    Wenn ich ein Zeiger nicht mit new erzeuge, wo wird denn die Speicheradresse gespeichert sodass der Zeiger darauf zeigen kann?
    Wenn ich z.B. jetz noch a = new int; mache, zeigt der Zeiger ja auf den gerade reservierten Speicherplatz und dann mit a=b; die Speicheradresse verändere, welche auswirkung hat dann ein delete a;?
    Und wenn ich mir vorher die Speicheradresse angeschaut habe von a, z.B. 009265C4. Kann ich dann diese Adresse a wieder zuweisen ? sodass a wieder auf diese Speicheradresse zeigt ?
    Und wieso bekomm ich bei
    int *pt;
    pt = new int;
    delete pt;
    Edit1->Text=*pt;
    ne menge Zahlen ausgegeben in Edit1? Auf welche Adresse zeigt der Zeiger pt denn noch ?
    Und wieso bemerke ich nichts an Speicherverlust wenn ich mir mein Arbeitsspeicher anschaue, obwohl ich so eine Zeile ausführe int *pt = new int[99999999999999999999];, ohne den Zeiger mit einem delete wieder freizugeben.

    Hoffe ihr versteht was ich meine ^^
    wäre für Antworten sehr dankbar.
    Zuletzt editiert von c0nstan; 07.03.2007, 23:59.
Working...
X