Ich versuche eine Übung von "Expert C Programming" wo der Punkt zu sehen, wie viel Speicher ein Programm zuordnen kann. Es hängt von malloc
ab, NULL
zurückzugeben, wenn es nicht mehr zuordnen kann.Malloc Kernel Panik statt NULL
Anstatt die Summe zu drucken, bekomme ich eine Kernel-Panik nach dem Zuweisen von ~ 8GB auf meinem 16GB Macbook Pro.
Kernel panic Protokoll:
Anonymous UUID: 0B87CC9D-2495-4639-EA18-6F1F8696029F
Tue Dec 13 23:09:12 2016
*** Panic Report ***
panic(cpu 0 caller 0xffffff800c51f5a4): "zalloc: zone map exhausted while allocating from zone VM map entries, likely due to memory leak in zone VM map entries (6178859600 total bytes, 77235745 elements allocated)"@/Library/Caches/com.apple.xbs/Sources/xnu/xnu-3248.50.21/osfmk/kern/zalloc.c:2628
Backtrace (CPU 0), Frame : Return Address
0xffffff91f89bb960 : 0xffffff800c4dab12
0xffffff91f89bb9e0 : 0xffffff800c51f5a4
0xffffff91f89bbb10 : 0xffffff800c5614e0
0xffffff91f89bbb30 : 0xffffff800c5550e2
0xffffff91f89bbba0 : 0xffffff800c554960
0xffffff91f89bbd90 : 0xffffff800c55f493
0xffffff91f89bbea0 : 0xffffff800c4d17cb
0xffffff91f89bbf10 : 0xffffff800c5b8dca
0xffffff91f89bbfb0 : 0xffffff800c5ecc86
BSD process name corresponding to current thread: a.out
Mac OS version:
15F34
Ich verstehe, dass dies leicht durch das Klischee des Arztes festgelegt werden kann „? Es tut weh, wenn Sie das tun dann tun das nicht“, aber ich, warum malloc
verstehen wollen funktioniert nicht wie erwartet.
OS X 10.11.5
Nachschlagen "Lazy Allocation", dies ist eine "Funktion" des Betriebssystems –