stapelfehler bei array-deklaration



  • hallo!

    hier eine frage, die mich quält:

    warum gibt:

    int main()
    {
        double array[1000000];
        return (0);
    };
    

    einen stapelfehler in der runtime;

    aber

    double array[1000000];
    
    int main()
    {
        return (0);
    };
    

    nicht?!

    wie kann ich ein entsprechend großes array einrichten, ohne dass mir ein stapel überläuft?

    vielen dank für eure mühe!



  • verdammt! falsches forum!

    tut mir leid!!!



  • double *array=new double[1000000];
    	array[0]=4.44;
    	cout<<array[0];
    	array [999999]=33.3;
    	cout<<array[999999];
    


  • der stapel ist einfach klein. basta.
    wie der linker das anstellt, daß ein globales array so groß sein kann, weiß ich nicht genau. vermutlich reicht es, in der ausfürbaren datei zu schreiben, daß da 4000000 nullen stehen.

    für so große arrays ist es aber kein problem, auf den freispeicher auszuweichen.

    [cpp]
    int main()
    {
    double* array=new double[1000000];
    ...
    delete[] array;
    return (0);
    };
    [cpp]


Anmelden zum Antworten