wchar_t



  • warum kann ich folgendes nicht machen?

    len = 1000;
    wchar_t buffer[len];
    
    error C2057: expected constant expression
    error C2466: cannot allocate an array of constant size 0
    error C2133: 'buffer' : unknown size
    


  • len hat keinen typ. besser:

    const int len = 1000;
    wchar_t buffer[len];
    

    Kurt



  • oder du machst halt ein Array dynamischer Größe, dann geht das:
    wchar_t* buffer = new wchar_t[len];

    Bei Arrays im Stile von vartyp buffer[xxx] muss len eine Konstante sein bei der die Größe zur Compilierzeit feststehen muss, also entweder direkt eine Zahl oder halt eine const Variable damit der Compiler sichergehen kann das sich der Wert nicht mehr ändert.



  • ZuK schrieb:

    len hat keinen typ. besser:

    const int len = 1000;
    wchar_t buffer[len];
    

    Kurt

    dies funktioniert bei mir leider nicht, weil ich das len nun dynamisch aus
    anderen variablen berechnen lassen möchte



  • dreaddy schrieb:

    oder du machst halt ein Array dynamischer Größe, dann geht das:
    wchar_t* buffer = new wchar_t[len];

    Bei Arrays im Stile von vartyp buffer[xxx] muss len eine Konstante sein bei der die Größe zur Compilierzeit feststehen muss, also entweder direkt eine Zahl oder halt eine const Variable damit der Compiler sichergehen kann das sich der Wert nicht mehr ändert.

    dies tuts!
    vielen dank für beide hinweise



  • asr schrieb:

    dies funktioniert bei mir leider nicht, weil ich das len nun dynamisch aus anderen variablen berechnen lassen möchte

    Dann musst du new benutzen, oder einen Container wie z.B. std::vector.



  • MFK schrieb:

    asr schrieb:

    dies funktioniert bei mir leider nicht, weil ich das len nun dynamisch aus anderen variablen berechnen lassen möchte

    Dann musst du new benutzen, oder einen Container wie z.B. std::vector.

    hab ich ja auch getan
    siehe nächste antwort von mir 😉



  • asr schrieb:

    hab ich ja auch getan
    siehe nächste antwort von mir 😉

    Jo, hatte sich mit meiner Antwort überschnitten 😉


Anmelden zum Antworten