Hallo,
ich habe ein Problem, das ich bei älteren g++-Varianten nicht hatte: bei Programmen mit großem Speicherbedarf kommt
noch bevor das Programm startet die berüchtigte Fehlermeldung "Speicherzugriffsfehler". Um das Problem zu isolieren, habe
ich mal ein ganz kleines c++-Programm geschrieben:
#include <iostream>
using namespace std;
const int nmax = 2000;
int main( int argc, char *argv[] )
{
double x[nmax][nmax];
int n1, n2;
cout << "Hier bin ich!\n";
for (n1=0; n1<nmax; n1++)
for (n2=0; n2<nmax; n2++)
x[n1][n2] = n1 - n2;
for (n1=0; n1<nmax; n1++)
for (n2=0; n2<nmax; n2++)
cout << x[n1][n2] << "\n";
return(0);
Muss ich irgendwelche Compiler-Switches setzen, damit dieses Programm ausgeführt wird? Schon der erste cout-Befehl
wird bei mir nicht ausgeführt!
Die include-Zeile hatte ich vorhin vergessen... Sorry.
Vielen Dank im Voraus,
Harald
ich habe ein Problem, das ich bei älteren g++-Varianten nicht hatte: bei Programmen mit großem Speicherbedarf kommt
noch bevor das Programm startet die berüchtigte Fehlermeldung "Speicherzugriffsfehler". Um das Problem zu isolieren, habe
ich mal ein ganz kleines c++-Programm geschrieben:
#include <iostream>
using namespace std;
const int nmax = 2000;
int main( int argc, char *argv[] )
{
double x[nmax][nmax];
int n1, n2;
cout << "Hier bin ich!\n";
for (n1=0; n1<nmax; n1++)
for (n2=0; n2<nmax; n2++)
x[n1][n2] = n1 - n2;
for (n1=0; n1<nmax; n1++)
for (n2=0; n2<nmax; n2++)
cout << x[n1][n2] << "\n";
return(0);
Muss ich irgendwelche Compiler-Switches setzen, damit dieses Programm ausgeführt wird? Schon der erste cout-Befehl
wird bei mir nicht ausgeführt!
Die include-Zeile hatte ich vorhin vergessen... Sorry.
Vielen Dank im Voraus,
Harald