Zweidimensoinales Array an eine Funktion übergeben



  • ad 1)
    das sollte schon funktionieren wie du das gemacht hast!!

    void foo(char **bar)
    {
      //...
    
      *(*(bar + i) + n); //z.B.: n-ter charakter des i-ten string
      // oder schöner:
      bar[i][n];
    
      //...
    }
    

    ad 2)
    also überladen kann man funktionen in C nicht, und klassen sind sowieso ein fremdwort! da musst du ins C++ forum

    hth
    Sebastian



  • add to sebhofer:
    übergeben mit:

    char bar[2][3];
    foo(bar); // SPEICHER MUSS AUF ALLE FÄLLE ALLOCIERT SEIN! 
    //sonst kannst du ja nicht mit der variable arbeiten
    

    mfG (c)h



  • danke für den zusatz chille!!
    das habe ich ganz vergessen!

    Sebastian



  • chille07 schrieb:

    add to sebhofer:
    übergeben mit:

    char bar[2][3];
    foo(bar); // SPEICHER MUSS AUF ALLE FÄLLE ALLOCIERT SEIN! 
    //sonst kannst du ja nicht mit der variable arbeiten
    

    mfG (c)h

    bei char[2][3] musste nix allokieren, das wird automatisch angelegt...



  • ich schrieb auch:
    "muss allociert sein"

    dh. es wird entweder automatisch allociert
    oder du musst es selbst allocieren(logisch*g*)
    ABER es MUSS Speicher allociert sein(dann ist nur noch die frage oba heap oder stack)

    mfG (c)h



  • chille07 schrieb:

    ABER es MUSS Speicher allociert sein(dann ist nur noch die frage oba heap oder stack)

    Oder im Nirvana 😃

    *scnr*



  • *gg* 😃 auch eine beliebte möglichkeit! 👍
    ist aber leider selten erfolgbringend;)

    mfG (c)h



  • chille07 schrieb:

    ABER es MUSS Speicher allociert sein(dann ist nur noch die frage oba heap oder stack)

    Nein muss er nicht! Es kommt ganz darauf an was du in der Funktion damit machst. Schließlich könntest du ja auch in der Funktion den Speicher erst allokieren.

    Übrigens sollte der Parameter noch ein const davorgestellt bekommen; nicht dass man in der Funktion noch auf dumme Ideen kommt ;).

    @plusman
    Das mit den Klassen fragst du am besten im C++-Forum nach (wenn noch nicht geschehen).



  • AJ schrieb:

    Übrigens sollte der Parameter noch ein const davorgestellt bekommen; nicht dass man in der Funktion noch auf dumme Ideen kommt ;).

    hmm...
    wenn jemand den pointer in der funktion inkrementieren will, soll er doch. gibts dabei gefahren?

    Sebastian



  • @AJ:
    stimmt!

    aber man weiss ja nie, ob er auch daran denkt?!

    mfG (c)h



  • chille07 schrieb:

    @AJ:
    stimmt!

    aber man weiss ja nie, ob er auch daran denkt?!

    mfG (c)h

    Deswegen ist deine Formulierung auch falsch. Er muss es nicht tun (also zwingend), sondern er sollte es tun. 😉


Anmelden zum Antworten