ΠΡ Π½Π°ΡΠ»ΠΈ, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
dbug15.5.2. ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ³Π½ΠΎΡΠΈΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡ ΠΎΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΡΡΠΏΠ½ΠΎΠΌΠ°ΡΡΡΠ°Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π½Π° Π‘ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ (ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ
malloc()realloc()free()ΠΡΠΎΡ ΡΠ°ΠΊΡ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ»Π΅Π½ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΌΠ΅Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
β’Β ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ: ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ.
β’Β ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ: ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ. ΠΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
β’Β ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ: ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ, ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
free()malloc()β’Β ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ: ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π²ΠΈΡΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
β’Β ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π° Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ: ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ.
β’Β ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. (ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.)
β’Β ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ: ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ ΠΏΠ°ΠΌΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ ΠΎΠ½Π° Π±ΡΠ»Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π°.
β’Β Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
β’Β Π€Π°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π΄Π»Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΏΠΎΠ·ΠΆΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΎΡΡΠ΅ΡΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡΡΠ³ΠΈΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡΡ ΠΆΡΡΠΊΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ
SIGSEGVΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
#definemalloc()free()Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ .
15.5.2.1. GNU/Linux
mtraceΠ‘ΠΈΡΡΠ΅ΠΌΡ GNU/Linux, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ GLIBC, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
#include <mcheck.h> /* GLIBC */void mtrace(void);void muntrace(void);ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ
mtrace()MALLOC_TRACEmuntrace()ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ; Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅. (ΠΡ Π½Π°ΡΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΠ΅, Π½ΠΎ ΡΡΠ° ΡΡ Π΅ΠΌΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠΌΠ΅ΡΡ.)
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
mtracegawkTIDYMEM$ <b>export TIDYMEM=1 MALLOC_TRACE=trace.out</b> /* ΠΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ */$ <b>./gawk 'BEGIN { print "hello, world" }'</b> /* ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ */hello, world$ <b>mtrace ./gawk mtrace.out</b> /* Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΡΡΠ΅Ρ */Memory not freed:-----------------Address Size Caller0x08085858 0x20Β at /home/arnold/Gnu/gawk/gawk-3.1.3/main.c:11020x08085880 0xc80 at /home/arnold/Gnu/gawk/gawk-3.1.3/node.c:3980x08086508 0x2Β Β at /home/arnold/Gnu/gawk/gawk-3.1.3/node.c:3370x08086518 0x6Β Β at /home/arnold/Gnu/gawk/gawk-3.1.3/node.c:3370x08086528 0x10Β at /home/arnold/Gnu/gawk/gawk-3.1.3/eval.c:20820x08086550 0x3Β Β at /home/arnold/Gnu/gawk/gawk-3.1.3/node.Ρ:3370x08086560 0x3Β Β at /home/arnold/Gnu/gawk/gawk-3.1.3/node.c:3370x080865e0 0x4Β Β at /home/arnold/Gnu/gawk/gawk-3.1.3/field.c:760x08086670 0x78Β at /home/arnold/Gnu/gawk/gawk-3.1.3/awkgram.y:13690x08086700 0xeΒ Β at /home/arnold/Gnu/gawk/gawk-3.1.3/node.c:3370x08086718 0x1fΒ at /home/arnold/Gnu/gawk/gawk-3.1.3/awkgram.y:1259ΠΡΠ²ΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
gawk15.5.2.2. Electric Fence
Π ΡΠ°Π·Π΄Π΅Π»Π΅ 3.1 Β«ΠΠ΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Linux/UnixΒ» ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈ ΠΈ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡΡΡ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ²
brk()sbrk()brk()sbrk()ΠΡ, ΠΊΠ°ΡΡΠΈΠ½Π°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠ°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ»Π΅Π΅ ΡΠ°Π·Π²ΠΈΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ (Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅ΠΆΠ½ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΈ
malloc()SIGSEGV