Array erzeugen zur Laufzeit



  • Hallo,

    (zuerst ich habe versuch die Forum-suche zu verwenden geht irgentwie net!)

    ich habe da eine Problem ich möchte was berechnen und dafür muss der benutzer des Programms seine arraygröße zur Laufzeit eingeben können:

    der compiler gibt mir einen fehler wenn ich

    int main() {
    
    int anzahl;
    cin >> anzahl;
    float a[anzahl];
    
    return 0;
    }
    

    kompilieren möchte . Der möchte einen konstanten ausdruck.

    Kann man die arraygröße irgentwie doch zur Laufzeit angeben und damit das array erzeugen??

    gruß

    VG



  • Ja, aber nur dynamisch:

    float *a = new float [anzahl];
    ...
    delete [] a;
    

    Wichtig ist dabei aber, dass du unbedingt delete [] aufrufst, wenn du das Array nicht mehr brauchst, sonst bleibt es im Speicher.



  • danke : )

    gruß

    VGans


  • Mod

    Und wenn du dir die potentiellen Probleme mit dynamischen Arrays sparen möchtest, solltest du dir mal std::vector ansehen.


Anmelden zum Antworten