Variablen den Wert eines Zeigers zuweisen.



  • Hallo, kurze Frage.

    Ich habe ein Array welches an eine Funktion übergeben wird. In der Funktion habe ich einen Zeiger der auf die erste Adresse des Arrays zeiget. Jetzt möchte ich gerne den Wert der in dem Array steht einer Variablen über diesen Zeiger zuweisen. Also in etwa,

    unsigned int Array[10];
    
    //Array wird aufgefüllt
    
    //Funktionsaufruf
    parameter(Array);
    
    void comm (unsigned int * zeiger)
    {
    unsigned int variable;
    .
    .
    variable=*zeiger;//hier soll die Variable den Wert erhalten der im Array steht
    .
    .
    }
    

    liege ich richting oder bin ich aufm Holzwech?

    b)Kann ich auch eine Adresse des Array übergeben die nicht an erster Stellle ist. z.B.

    parameter(Array[3]);
    

    die Variable soll später den Wert der an dritter (vierter) Stelle steht zugewiesen bekommen.

    Danke schon mal.

    Gruß



  • a) ja damit liegst du richtig - mit dem * dereferenzierst du den Zeiger und erhältst den Wert auf den er zeigt.
    b) Der Funktion ist es völlig egal, wohin der übergebene Zeiger verweist, also kannst du ihr auch einen Zeiger mitten in das Array übergeben. Der Zugriff per comm(Array[3]); ist allerdings nicht richtig, da der Inde-Operator auch dereferenziert - korrekt wäre comm(&Array[3]); oder comm(Array+3);

    PS: Ich hoffe, die Vermischung von comm() und parameter() ist durch C&P entstanden.



  • Danke


Log in to reply