[C/C++] Pointer / Addressen

Dieses Thema im Forum "Programmier Tutorials" wurde erstellt von cIntX, 14. Januar 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. Januar 2008
    Pointer / Addressen

    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:

    Code:
    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.

    Code:
    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.

    Code:
    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
     
  2. 26. Februar 2008
    AW: Pointer / Addressen

    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:
    Code:
    char **asd;
    
    und wozu genau man die funktion malloc braucht etc.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.