Array an Funktion übergeben



  • Hi,

    ich will einen in der 1. Funktion deklarierten Array in eine 2. Funktion übergeben, nur wie mach ich das???

    Ich habe es bisher so versucht:

    ###############################################################

    int fkt_1()
    {
    int array[10];
    ...
    return array;
    }

    void fkt_2(int ar)
    {
    ...
    //verarbeite übergebenen Array
    ...
    }

    ###############################################################

    Nur liefert er mir hier immer den Fehler:
    "Invalid indirection in function fkt_2"

    Kann mir vielleicht jemand erklären wie mach einen Array richtig übergibt???
    Schonmal danke im vorraus.



  • probiers so:

    void fkt_2(int *arr, int anz)
    

    oder

    void fkt_2(int arr[], int anz)
    


  • Du kannst kein Array so einfach mittels return aus einer Funktion zurückgeben.



  • @ Gary:
    Danke für die schnelle Antwort.

    Beim 1. Vorschlag übergibst du einen Zeiger auf den Array der in der 1. Fkt deklariert wurde , aber der Array ist doch nur in der 1. Funktion deklariert und verliehrt nach dem Block seine Gültigkeit??? Zumindest würde ich das so verstehen.
    Was machst du eigentlich mit der Integer Variable "anz"??? Könntest du mir das alles etwas näher erläutern???

    @ Lars:
    Wie könnte ich es denn dann machen???
    Ausser eine globale Variable einzusetzen???

    [ Dieser Beitrag wurde am 12.04.2003 um 15:07 Uhr von Wolle. editiert. ]



  • Original erstellt von Lars:
    Du kannst kein Array so einfach mittels return aus einer Funktion zurückgeben.

    Stimmt, ein Array kannst du nicht zurückgeben. Wohl aber einen Zeiger auf ein Array.



  • Die Variable anz gibt an, wieviele Elemente das Array hat.
    Falls du Schleifen,... in der Funktion hast, ist das sehr nützlich.


Anmelden zum Antworten