Array-Übergabe



  • Hallo alle miteinander,

    ich habe mal wieder ein Problem mit einem meiner Programme:

    Ich erstelle in der main()-Funktion ein char-Array, dass seine Dimension aus Variablen zugeweisen bekommt.
    Nun möchte ich dieses Array an eine Funktion übergeben, welche dieses mit Werten füllt. Anschließend soll das gefüllte Array an eine weitere Funktion übergeben werden, welche den Inhalt auswertet.
    Das ganze sieht dann ungefähr so aus:

    int main()
    {
       int i=3;
       int j=4;
    
       char code[i][j];
       get_code(code);
       interpret(code);
    
       return 0;
    }
    

    Das ist natürlich nur eine vereinfachte Version.

    Kann mir jemand sagen, wie ich dass Array übergeben muss, damit es korrekt gefüllt wird, und es keine Fehler bei der Übergabe gibt.

    Danke im Voraus,

    Prof. MAAD



  • Du kannst das Array benutzten wie z.B. jede andere Variable auch, was meinst Du genau?



  • Das Problem ist, dass ich das Array eben nicht ganz normal übergeben kann.
    Ich habe mal nen ganz billigen Testcode erstellt, der das Problem verdeutlichen soll:

    # include <iostream>
    using namespace std;
    
    void get_code(char c)
    {
         if(c[0][2]=='i')
         {
            cout<<"hallo"<<endl;
         }
    }
    
    int main()
    {
        int i=1;
        int j=4;
    
        char code[i][j];
    
        code[0][2]='i';
    
        get_code(code);
    
        return 0;
    }
    

    Wenn ich das Bissl nun compiliere, bekomme ich folgende Fehler:

    C:\Unbenannt1.cpp In function void get_code(char)': 6 C:\\Unbenannt1.cpp invalid typeschar[int]' for array subscript

    C:\Unbenannt1.cpp In function int main()': 21 C:\\Unbenannt1.cpp invalid conversion from \char (*)[((unsigned int)((int)j))]' to `char'
    21 C:\Unbenannt1.cpp initializing argument 1 of `void get_code(char)'

    Das zeigt mir nun ja, dass ich ein Array nicht so einfach als Parameter übergeben kann. Kann mir jemand sagen, wie das möglich wird.

    Danke im Voraus,
    Prof. MAAD



  • 21 C:\Unbenannt1.cpp invalid conversion from `char (*)[((unsigned int)((int)j))]' to `char'

    dieser fehler wollte dir mitteilen das dein funktionsparameter nicht stimm
    du übergibst ein char array nimmst in der funktion aber nur ein char auf

    also an deiner funktion ist zumindestens folendes falsch

    void get_code(char c)

    wie das nun genau abgeändert werden muss weis ich leider nicht

    vielleicht in der art void get_code(char c[i] [j])


Anmelden zum Antworten