Zeiger - Problem



  • Hallo,

    ich wollte eine Funktion schreiben, über die man einen Zeiger in einem anderen Gültigkeitsbereich inkrementieren kann.

    Ich denke ich hab das System noch nicht ganz verstanden^^.

    ##Vereinfacht dargestellt##

    void ZeigerInk(int** Test)
    {
    *Test++;
    }

    void main()
    {
    int Testarray[] = {1,2,3,4,5};
    int* pTest = &Testarray[0];

    ZeigerInk(&pTest);

    return 0;
    }

    Bei der Übergabe eines einfachen Pointers ist garnichts passiert, jedoch tut sich mit einem Zeiger auf einen Zeiger genauso wenig =(.

    Hoffe mir kann jemand helfen.

    Vielen Dank!
    Woo



  • Ich hab vergessen

    cout << *pTest << endl;

    nach dem Funktionsaufruf dazuzuschreiben.



  • Ok hat sich erledigt.

    Das Problem war folgendes.

    void ZeigerInk(int** Test)
    {
    *Test++;
    }
    

    funktioniert nicht.

    aber

    void ZeigerInk(int** Test)
    {
    *Test = *Test + 1;
    }
    

    funktioniert.



  • #include <iostream>
    
    void ZeigerInk(int* Test) 
    { 
        ++*Test; 
    } 
    
    int main() 
    { 
        int Testarray[] = {1,2,3,4,5}; 
        int* pTest = &Testarray[0]; 
    
        ZeigerInk(pTest); 
        std::cout << *pTest << std::endl;
    
        return 0; 
    }
    


  • Oder
    ++(*zeiger)


Anmelden zum Antworten