Vollständige Version anzeigen : [C/C++] Pointer / Addressen


cIntX
14.01.2008, 07:22

Was sind Pointer?
Pointer (Zeiger) ist eine Variable die auf eine Addresse zeigt im Speicher bereich, dadurch ermöglicht man sich das Lesen und Schreiben des Memory bereiches.

Wieso Pointer?
Mit Pointer gibt es weitere möglichkeiten Daten zu verarbeiten man kann sich freigebig im eigenen Speicher bereich bewegen und beliebig modifizeren oder auslesen. Durch die Addresses ist es auch möglich einfache Address kalkulierunge durch zuführen z;b. 3 Zeichen weiter rutschen; 3 Zeichen verkürzen usw...

In C++ sind Pointer immer mit ein * besehen, die Pointer müssen auf eine Addresse zeigen sonst gibt es im meisten fall eine Exception und führt zum Absturz des Programmes, man kann sich in C++ eine Addresse reservieren indem man das ganze mit "new" macht. Hier ein Beispiel:

char * CharVariable = NULL

Die oben angegebene Variable zeigt auf die Addresse NULL (0), beim versuchen sie zu Lesen oder Schreiben würde man einen "Access violation" fehler bekommen meistens mit dem fehler code 0x5000000. Es heißt einfach schlicht und einfach auf dieser Addresse kann weder Gelesen noch Geschrieben werden. Um solche Fehler zu vermeiden gibt es verschiedene Varianten.

char * CharVariable = new char[12]

Durch "new char [12]" werden diesmal im Speicher 12 Bytes reserviert und CharVariable wird auf die Addresse zugewiesen, es vermeidet zwar nicht einen Buffer Overflow aber man sollte immer darauf achten das die Variable nicht auf eine Fremde Addresse zeigt.

Man kann aber auch prüfen ob die Addresse nicht NULL ist.

if(CharVariable) {
printf("Nicht NULL");
} else {
printf("NULL");
}


Hiermit sichert man sich das die Addresse nicht auf NULL steht um die Variable zu nutzen.



Ich denke das wahr es erstmal und ich hoffe ich habe hier nicht zuviel ******** erzählt :D

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
myth2806
26.02.2008, 18:32

danke dafür, find ich ganz gut erklärt.
allerdings wär ich dankbar wenn du das ganze noch ein bisschen tiefer und auch für C erklären könntest.
also was es mit einer variable wie zum beispiel dieser auf sich hat:

char **asd;

und wozu genau man die funktion malloc braucht etc.


Ähnliche Themen zu [C/C++] Pointer / Addressen
  • C++ pointer
    Hallo muss heute Abend die folgenden Aufgaben abgeben. Die erste und zweite habe ich fertig nun komme ich leider nicht weiter, weil ich nicht wirklich verstehe was ich machen muss. Datentypen einlesen Schreiben Sie ein Programm, das von der Tastatur nacheinander die folgenden Datentypen einli [...]

  • [C/C++] Pointer auf Pointer?
    Moinsens... also ich hab ne Frage! Ich hab ein nettes Beispielprogramm geschrieben was bei meinem Buch gefordert/empfohlen wird. ich habe eine Basis-Klasse namens c_RaumSchiff und eine davon abgeleitete c_Minenleger ^^ ich weiß das ist alles schwachsinn aber egal es geht nur darum das ich das mit d [...]

  • Mushroom shop - Addressen ?
    hey wollt mal fragen ob wer nen mushroom shop kennt ? weiß nich genau ob die frage hier erlaubt ist, daher falls nich bitte umgehend benachrichtigen, dann schließ ich das thema gleich wieder.... evtl könnt mir ja jemand addresse per pn zukommen lassen, wäre super und renomee wär sicher auch dri [...]

  • Addressen Löschen..
    Sry aber ma ne ganz blöde Frage ... wie kann ich nochmal die gespeicherten addressen im Browser löschen für Firefox und IE7 also dass der broweser nicht mehr vorher weis, welche addresse ich eintippen will und vorallem beim benutzernamen felder und passwörter... mfg [...]



raid-rush.ws | Imprint & Contact pr