Mehrdimensoniale dynamische Arrays
-
-
aber mal an alle:
wie überprüfe ich denn, ob die Allokation des Speicherplatzes geklappt hat oder nicht?
habe bis jetzt immer auf ==NULL abgefragt, aber irgendetwas sagt mir, daß new doch bestimmt bei Mißerfolg eine exception schmeißt und ....
Wie macht man es richtig?
-
Schanke dön ! Dann mal nen gutes WE !
-
freshman schrieb:
aber mal an alle:
wie überprüfe ich denn, ob die Allokation des Speicherplatzes geklappt hat oder nicht?
habe bis jetzt immer auf ==NULL abgefragt, aber irgendetwas sagt mir, daß new doch bestimmt bei Mißerfolg eine exception schmeißt und ....
Wie macht man es richtig?Man(ich) lässt die Prüfung einfach sein, weil das auf einem "normalem" PC eigentlich nicht passieren kann. Falls du für Handys programmierst oder sonstige System mit wenig RAM, dann kannst du std::bad_alloc fangen, aber so halte ich das für eine mehr als überflüssige Prüfung.
-
std::bad_alloc sollte geschmissen werden, wieviele Compiler das nun aber genau machen weiß ich nicht.
MfG SideWinder
-
freshman schrieb:
habe bis jetzt immer auf ==NULL abgefragt
stimmt nicht so ganz. ich habe die Prüfung bis jetzt auch immer weggelassen; jedoch habe ich das in einer Klausur angemeckert bekommen.
std::bad_alloc catchen ist wohl am ratsamsten, oder? vielleicht noch ein klitzekleinesmini-Bsp für einen freshman wie mich? (wenn ich zB zwar C++-Syntax aber prozedural progge)
-
ich bin es irgendwie leid nach jedem new bad_alloc zu catchen, ich finde das umständlich. Vor allem wenn man oft new verwendet, überlädt es den code häufig zu sehr. Ich schreibe lieber new (nothrow) und prüfe auf null.
Das ist für mich ein wenig logischer als konsequent stur auf bad_alloc zu prüfen.
-
Wenn man fragen darf, was machst du denn, wenn du keinen Speicher mehr hast?
-
Wenn man fragen darf, was machst du denn, wenn du keinen Speicher mehr hast
sterben
-
auf Festplatte auslagern