mehrdimensionale Arrays
-
Hi ,ich habe ein kleines Problem. Bin hier neu und hoffe, dass jemand meinen Fehler aufdecken kann. Habe schon länger Recherchiert und komme einfach nicht weiter.
Also mein Problem ist, dass mein Programm soweit Compiliert, jedoch wenn ich den Wert "x"<10 größer als 1 oder 2 setze hängt sich das Programm auf oder gibt mir diesen Fehler in der CMD zurück:terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_allocThis application has requested the Runtime to terminate it in an unusual way. Please cantact the application´s support team for mor information.
Habe ich da ein Speicherproblem?
char** KI::TField()
{
cout<<"test"<<endl;char **TFields= new char*[16];
for(int y = 0; y < 16; y++)
{
TFields[y]=new char[10];
for(int x = 0; x < 2; x++)
{cout<<KIBoard.get_Field(x,y);
TFields[x][y]=KIBoard.get_Field(x,y);
cout<<TFields[x][y]<<"test";
}
}return TFields;
}
PS: Wie kann ich den Code schöner darstellen lassen?
LG
-
Habe ich da ein Speicherproblem?
Wahrscheinlich indirekt.
Mal der Code, formatiert und zusammengerückt (und in Code-Tags, dazu quote einfach meinen Post und guck wie das mit BBCode aussieht):
char** KI::TField() { cout << "test" << endl; char **TFields = new char*[16]; for(int y = 0; y < 16; y++) { TFields[y]=new char[10]; for(int x = 0; x < 2; x++) { cout<<KIBoard.get_Field(x,y); TFields[x][y]=KIBoard.get_Field(x,y); cout<<TFields[x][y]<<"test"; } } return TFields; }Ich habe die Frage nicht verstanden, bzw. die Erklärung:
Also mein Problem ist, dass mein Programm soweit Compiliert, jedoch wenn ich den Wert "x"<10 größer als 1 oder 2 setze hängt sich das Programm auf oder gibt mir diesen Fehler in der CMD zurüc
Könntest du das nochmal anders formulieren?
Ein sehr schwerwiegender Designfehler (ist das nur ein Designfehler?) ist schon mal definitiv das Nutzen der C-Lösung für dynamische Arrays; konkreter, das explizite Allokieren und selbige Verwalten des Speichers. - kennst du keine STL-Container? Mit denen hättest du das Problem möglicherweise nicht (ich hab mir den Algorithmus nicht genauer angesehen, vielleicht liegt es auch einfach an dem / dessen Umsetzung).
-
Problem wurde gelöst trotzdem danke
