Arraygröße nicht in "Plaintext" angeben



  • Hi, ich habe ein Array, bei dem ich einmal die Arraygröße mit einem Makro angebe und ein anderes Mal mit einer Variablen.

    1.Funktioniert das überhaupt? Bei mir macht es dies nicht..
    2. Funktioniert das bei gcc?



  • arry schrieb:

    Hi, ich habe ein Array, bei dem ich einmal die Arraygröße mit einem Makro angebe und ein anderes Mal mit einer Variablen.

    1.Funktioniert das überhaupt? Bei mir macht es dies nicht..

    Das funktioniert seit C99 (dem aktuellen C-Standard). Nennt sich VLA (variable length arrays). Geht natürlich nicht bei "globalen" Arrays.

    arry schrieb:

    2. Funktioniert das bei gcc?

    Da sollte es definitiv gehen (einen uralt-gcc mal ausgeschlossen).

    Vielleicht mal ein -std=c99 anhängen?



  • Achso.. danke,
    Und wo kann ich "meinen Standard" nachgucken (Also den meiner IDE bzw. meines Compilers)?
    Und wie kann ich den updaten?



  • Aktuelle gcc sollten sowohl C89 als auch C99 unterstützen. Umschaltbar mit -std=c89 bzw. -std=c99

    Wobei man aufpassen muss, da der gcc vla auch ohne C99 als Erweiterung unterstützt. Generell bietet sich eh noch -Wall und -pedantic an.



  • Ich benutze MS VC++ 98 und kann auch // Kommentare benutzen, jedoch bei dem Array bekomme ich folgende Fehler:

    *.h(75) : error C2133: 'opkh' : Unbekannte Groesse
    *.h(88) : error C2036: 'struct data *' : Unbekannte Groesse

    static struct data opkh[MAX_CLASS];

    struct data* dummy(int class_) {
    if (class_ == 0) {
    return &dummy[0];
    }
    }



  • Der MS-C-Compiler ist total veraltet. Der kann das nicht. Auf den Code geh ich nicht ein: unvollständig, nicht in [cpp]-Tags und sinnfrei.


Anmelden zum Antworten