Thema: C++ & C#
Einzelnen Beitrag anzeigen
#21
Alt 15.12.09, 14:26:20
Zahl
Benutzerbild von Zahl
Senior Member
Registriert seit: 29.01.03
Alter: 38
Geschlecht: ♂
Beiträge: 11.517
IRC Zeilen: 181199
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
IPv6
1 b)
Code:
for (;;) char *bla = new char[1048576];
Halte ich aber für Schwachsinn die Aufgabe, der Heap läuft erst bei 2 bzw 3GB voll, und das auch nur bei nem 32Bit OS, wenn du weniger RAM im Rechner hast oder n 64Bit OS, wird er anfangen zu swappen und das System reagiert fast nicht mehr.
2. Blatt:
a) ist für heap ja schon gelöst, da malloc NUL zurück gibt. Einfach den Speicher mit malloc reservieren, statt mit new. Für den stack einfach wie vorgeschlagen einen try/catch block um den rekursiven Aufruf hauen. Im catch-Teil dann irgendwas melden und da Programm beenden.

b) Ich nehme mal an wie der Code aussieht weißt du?
Was du feststellen wirst ist, dass zumindest alle x86/x64 basierten Maschinen die Bytes von niedrig nach hoch anordnet im Speicher. Ein int besteht aus 4 Bytes, das erste Byte hat den niedrigsten Wert im Speicher.
Die Zahl 255 liegt im Speicher als 255 0 0 0, die Zahl 256 als 0 1 0 0.


風向轉變時,有人築牆,有人造風車