2 dimensionales array an eine funktion übergeben?



  • hi leute,

    ich hab ein array:

    char array[5][10];
    
    void main(void) {
      funktion(array); // ?
    }
    
    void funktion(array) { // ?
    
    }
    

    wär super wenn mir da jemand weiter helfen könnte 😉



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • void funktion(char array[5][10])
    

    logisch, oder?



  • Die C-implementierung wäre es eine Pointer auf das erste Element des arrays zu übergeben.

    void function( char * array)
    {
    ....
    }
    

    Da die Funktione nicht nur für die eine Implementierung genutzt werden soll wäre
    folgende Implementierung sinnvoll

    int function( char * array, int dim1, int dim2)
    {
    int i,j;
    for(i=0;i<dim1;i++)
     for(j=0;j<dim2;j++)
      {
       // tu irgendwas
      }
    return 0; // Rückgabe wert 0 falls alles ok, wenn ein Fehler auftriit eine Rückgabewert ungleich 0
    }
    


  • Da es zwei Dimensionen sind, wärs auch gut, wenn man zwei * angibt 😉

    Aber mal von dem ganzen abgesehen. Welchen Sinn hat es bitte schön eine globale Variable als Parameter zu übergeben? 😕



  • AJ:

    Da es zwei Dimensionen sind, wärs auch gut, wenn man zwei * angibt

    Nein, ** ist ein Zeiger auf einen Zeiger. Das ist was anderes, als ein zweidimenionales Array.

    Aber mal von dem ganzen abgesehen. Welchen Sinn hat es bitte schön eine globale Variable als Parameter zu übergeben?

    Das ist bei der Frage doch egal, ob es ein globales oder sonstiges Array ist.

    SG1:

    C# Code:
    void funktion(char array[5][10])

    logisch, oder?

    Ja, geht in C genauso.

    void funktion(char array[][10]) ginge auch.


Anmelden zum Antworten