kleine Anfängerfrage



  • Moin

    Also ich hab schon nen bisschen rumprobiert und bin dann auch auf folgendes Problem gestossen:

    Sagen wir mal ich deklinier

    int array[6*6];
    

    Klappt ja auch ganz prima. Aber wenn ich jetzt folgenden Code habe, mekert der *******-Compiler:

    int x = 6;
    int y = 6;
    int array[x*y];
    

    Häh? Wo issen der Unterschied zwischen dem und dem oben? Ausser das ich die Größe des Array mit Variablen berechne. Denk ich irgendwie falsch oder was?

    Auf jeden Fall danke schonaml für eure Hilfe

    MFG

    gast



  • const int x = 6;
    const int y = 6;



  • Eh, der compiler ist nicht *******! Der Compiler ist dein freund! 🙂

    Aber das geht nicht weil sich x und y während der ausführnug des Programms ändern können. und die größe eines Array muss zur ausführungszeit des Programms bekannt sein. Für sowas gibt es dann malloc!

    zum Bleistif:

    int x = 6;
    int y = 6;
    int *array;

    array=(int *)malloc(sizeof(int)*x*y);



  • gleich gibts wieder ärger weil du den rückgabewert von malloc gecastet hast.



  • Jo danke.
    Hab mich für die const variante entschieden. Für das andere bin ich zu doof 😉


Anmelden zum Antworten