Exception fault bei short*
-
tut mir leid, hatte das vergessen zu ändern. Habs jetzt gemacht. Also es funktioniert weder mit int* noch mit short*, und max ist definiert und positiv, das hab ich überprüft, max wird noch von anderen mallocs verwendet und da funzt es.
-
Bist du dir sicher, dass es an dem malloc() liegt? Hast du dich schon mit dem Debugger an die Stelle gehangelt, wo er aussteigt?
Generell sollte man überprüfen, ob der zurückgelieferte Wert von malloc() auch ein gültiger Wert ist. Wenn malloc() keinen freien Speicher mehr allocieren kann, dann wird 0 zurückgeliefert. Wenn du nun versuchst auf die Adresse 0 zuzugreifen, dann kann es durchaus zu dieser Fehlermeldung kommen. Am besten überprüfst du das wieder mit dem Debugger
-
Ich hab bereits mit Assert() alle Felder auf NULL überprüft und alles is ok...
naja der fehler kommt an keiner bestimmten stelle, er kommt halt wenn ich die funktion beende, die ich da gestartet habe... bin etwas ratlos, habe eigentlich alles überprüft...
aber offensichtlich nicht
-
was ich noch sagen wollte, ich habe noch keine free / deletes am ende des programms eingebaut, aber ich denke nicht das es daran liegt.
-
hab es gefunden, lag an ner anderen verwendung des structs Ttable, wo das NUM noch nich gemallocced war, und dann bei der benutzung abgestürzt is
-
Wenn du C++ benutzt, wieso benutzt du anstelle von malloc/free nicht new/delete?
-
macht das nen unterschied?
-
Hi,
ja, es wird bei new der Kon- und bei delete der Destruktor aufgerufen. Aber ich sehe den Zusammenhang auch irgendwie nicht.
-
Das einzige was in dem Code an C++ erinnert sind die (für C) unnötigen Casts und das bool.
-
Wichtig bei malloc/free und new/delete ist, dass man sie nicht mischt