Problem mit pointer



  • Zuerst mal Hallo zusammen....

    Ich bin gerade dabei, mir C++ beizubringen...
    bis jetzt habe ich alles verstanden, aber bei den Pointern die auf den Heap zugreifen, habe ich ein Problem....

    Ich habe folgenden code geschrieben...

    #include <iostream.h>
    #include <stdlib.h>
    
    int main()
    {
    
    int * ppointer = new int;                     //speicher zuweisen
    
    *ppointer = 0;                                //Wert in speicher schreiben 
    
    while (*ppointer != 10 )
    {
     cout << "ppointer: " << *ppointer << "\n";   //wert ausgeben
     *ppointer++;                                 //wert inkrementieren
    }
    
    delete ppointer;                             //speicher freigeben
    
          system("PAUSE");
          return 0;
    }
    

    Meiner Meinung nach, sollte *ppointer jetzt bis auf 10 zählen, und das ganze auf den Bildschirm ausgeben....
    Leider bleibt die Zahl immer auf 0....

    wenn ich die Zeile *ppointer++; mit *ppointer = *ppointer + 1; ersetze, funktioniert es...

    Weshalb kann ich diesen Pointer nicht mit *ppointer++; inkrementieren???

    THX



  • Es wird zuerst ++ angewendet, dann *.



  • Um das noch etwas auszuführen.

    Weil der incrementoperator vor dem dereferenzierungsoperator abgearbeitet wird musst du die Bindung von Hand anpassen.

    (*pointer)++;
    


  • danke, hat funktioniert.....


Anmelden zum Antworten