double-Array "zur Laufzeit"



  • Hallo zusammen!

    Ich habe mir folgendes Konstrukt überlegt:

    int neMethode(int i)
    {
    
      double arr[i];
      //arr verarbeiten
    
      return 0;
    
    }
    

    Das funktioniert natürlich nicht. Was kann ich machen, um die Größe des Arrays erst nach Methodenaufruf zu definieren? Geht es überhaupt?

    Gruß
    jörg



  • In C99 sollte das so funktionieren (VLAs), in älteren C-Versionen mußt du das Array auf dem Heap anlegen:

    int neMethode(int i)
    {
      double* arr = malloc(i*sizeof(double));//oder 'calloc(i,sizeof(double))'
      //arr verarbeiten
    
      free(arr);
      return 0;
    }
    

Anmelden zum Antworten