ΠΠ±ΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Linux. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠΌΠΎΡΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ Π½Π΅ΠΉ Π΄Π΅Π»Π°ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ½ΠΎΠ²Π° (Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠ± ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΎΡΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ) ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅). ΠΡΠ»Π°Π΄ΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΏΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΠΏΠΎΠ²:
β‘ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΏΠΎΠΈΡΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ·ΡΡΠ½ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ;
β‘ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ;
β‘ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅ΠΉ Π·Π° ΠΎΡΠΈΠ±ΠΊΡ;
β‘ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ° β ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°;
β‘ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° β ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ. Π§ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΡΡ Π³Π»Π°Π²Ρ, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅ Π·Π°Π΄Π°ΡΠ° β ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ sort, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΡΠΊΡΡΡ ΡΠΈΠΏΠ° item ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ "ΠΏΡΠ·ΡΡΡΠΊΠ°". ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»Ρ key. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ sort Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΠ°Π»ΠΈ Π±Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠ·ΡΠΊΠ° Π‘ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ qsort, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΡΡ Π·Π°Π΄Π°ΡΡ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ, Π² Π½Π΅ΠΌ Π½Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΠΈ Π°Π²ΡΠΎΡ ΡΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π±ΠΈΡΡΡΡ Ρ Π½Π΅ΠΉ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ debug1.c.
/* 1 */ typedef struct {
/* 2 */ char *data;
/* 3 */ int key;
/* 4 */ } item;
/* 5 */
/* 6 */ item array[] = {
/* 7 */ {"bill", 3},
/* 8 */ {"neil", 4},
/* 9 */ {"john", 2},
/* 10 */ {"rick", 5},
/* 11 */ {"alex", 1},
/* 12 */ };
/* 13 */
/* 14 */ sort(a, n)
/* 15 */ item *a;
/* 16 */ {
/* 17 */ int i = 0, j = 0;
/* 18 */ int s = 1;
/* 19 */
/* 20 */ for(; i < n && s != 0; i++) {
/* 21 */ s = 0;
/* 22 */ for(j = 0; j < n; j++) {
/* 23 */ if(a[j].key > a[j + 1].key) {
/* 24 */ item t = a[j];
/* 25 */ a[j] = a[j+1];
/* 26 */ a[j+1] = t;
/* 27 */ s++;
/* 28 */ }
/* 29 */ }
/* 30 */ n--;
/* 31 */ }
/* 32 */ }
/* 33 */
/* 34 */ main()
/* 35 */ {
/* 36 */ sort(array,5);
/* 37 */ }
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
$ ΡΡ -ΠΎ debug1 debug1.Ρ
ΠΠ½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ, ΠΎΡΡΠ°Π±ΠΎΡΠ°Π»Π° Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ debug2.c.
/* 33 */ #include <stdio.h>
/* 34 */ main()
/* 35 */ {
/* 36 */ int i;
/* 37 */ sort(array, 5);
/* 38 */ for(i = 0; i < 5; i++)
/* 39 */ printf("array[3d] = (%s, %d)\n",
/* 40 */ i, array[i].data, array[i].key);
/* 41 */ }
ΠΡΠΎΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ, ΠΏΠΎΠ·ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ. ΠΡ Π·Π°ΡΡΠ°Π²ΠΈΠ»ΠΈ Π²Π°Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π‘Π»Π΅Π΄ΡΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²Π½Π΅ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π²Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π° ΡΡΠΎΡ ΡΠ°Π· Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΅Π΅:
$ cc -ΠΎ debug2 debug2.Ρ
$ ./debug2
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΡΠΎ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Linux (ΠΈΠ»ΠΈ UNIX) ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π ΡΠ²ΠΎΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
array[0] = {john, 2}
array[1] = {alex, 1}
array[2] = {(null), -1}
array[3] = {bill, 3}
array[4] = {neil, 4}
Π Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΉ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠ΄ΡΠΎ Linux) ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
Segmentation fault
Π Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Linux Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ. ΠΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π΄Π°Π»Π΅Π΅ Π²ΡΠ²ΠΎΠ΄:
array[0] = {alex, 1}
array[1] = {john, 2}
array[2] = {bill, 3}
array[3] = {neil, 4}
array[4] = {rick, 5}
Π―ΡΠ½ΠΎ, ΡΡΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π΅ΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ½ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π° Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΡΠΎΠΎΠ±ΡΠ°Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΈΡΠΏΠΎΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΡΠ°ΡΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π²ΡΡΠ²ΠΈΡΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Linux ΠΈ UNIX ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΡΠΈΠ³Π½Π°Π» ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ printf, Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΌΡ Π΄ΠΎΡΡΡΠΏΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ null.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ°ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±Π°ΠΉΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π±Π°ΠΉΡΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠΉΡΠΈ Ρ ΡΡΠΊ, Ρ.ΠΊ. ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π±ΡΠ΄Π΅Ρ ΠΎΠΊΡΡΠ³Π»ΡΡΡΡΡ Π΄ΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π·Π°Π²ΠΈΡΡΡΠ΅ΠΉ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°Π²Π½ΠΎΠΉ 8 ΠΠ±Π°ΠΉΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° item ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ· 4096 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π»ΡΠ±ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°Π²Π΅Π½ 4 ΠΠ±Π°ΠΉΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡ 0 Π΄ΠΎ 4 ΠΠ±Π°ΠΉΡ.
ΠΡΠ»ΠΈ ΠΌΡ Π²Π½Π΅ΡΠ΅ΠΌ ΡΡΡ ΠΏΠΎΠΏΡΠ°Π²ΠΊΡ, Π½Π°Π·Π²Π°Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ debug3.c, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² Π²Π΅ΡΡΠΈΡΡ Linux ΠΎΠ±ΠΎΠΈΡ Π°Π²ΡΠΎΡΠΎΠ².
/* 2 */ char data[4096];
$ ΡΡ -ΠΎ debug3 debug3.Ρ
$ ./debug3
Segmentation fault
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Linux ΠΈΠ»ΠΈ UNIX Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π΄Π°ΡΡ ANSI Π‘ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘, ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅! ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΈΠ·ΡΡΠ½ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π΅Π΅ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°
ΠΠ°ΠΊ ΠΌΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΡΠ°ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΡ Π΅Π΅. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π² Π½Π΅ΠΌ Π²ΡΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠ½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° β ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π² Ρ ΠΎΠ΄Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π³ΡΡΠΏΠΏΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ ΡΡΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΌΠ°ΡΡΡΠ°Π± Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°, ΠΈ ΠΎΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΊΠΎΠ΄Π°, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. ΠΠ½ ΡΠΎΠΎΠ±ΡΠΈΡ Π²Π°ΠΌ ΠΎ Π»ΡΠ±ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΅ΡΡΡ ΠΎΠΏΡΠΈΠΈ, ΡΠΎΡΠΌΠΈΡΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΉ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ GNU ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ:
gcc -Wall -pedantic -ansi
ΠΠ½ΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ ΡΠ·ΡΠΊΠ° Π‘. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π·ΡΡΡ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΎΠΏΡΠΈΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Wall. ΠΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π§ΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, lint ΠΈ splint. ΠΠ°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΎΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΊΠΎΠ΄ ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ.