рдХреЙрдкреА рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ

memcpy

рдореИрдВрдиреЗ рдХрдИ рдмрд╛рд░ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд╛рдзрд╛рд░рдг рдбреЗрдЯрд╛ рдХреЙрдкреА рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХреЗред рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджреЗрдЦрд╛ рдерд╛ред

рдмрд╛рдбреЗрд░рд╛-рдореЗрдиреНрд╣реЛрдл рдШрдЯрдирд╛? рдирд╣реАрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛


рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдХреЗ рдПрдХ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ DevRel - рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ :)ред рдЖрдЬ рдореИрдВрдиреЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдбреЗрдЯрд╛ рдХреЙрдкреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдореИрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрд╕рдлрд▓ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЖрдпрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд▓рд┐рдЦрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╣рддреНрд╡ рдирд╣реАрдВ рджрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рд╡реГрддреНрддрд┐ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд┐рдЫрд▓реЗ рджреЛ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред

рдХреЛрдИ рдпрд╣ рддрд░реНрдХ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджреЛ рдорд╛рдорд▓реЗ - рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рддрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рдХрд┐, рд╢рд╛рдпрдж, рдореИрдВрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рдмрд╛рдж рдореБрдЭрд╕реЗ рдореБрд▓рд╛рдХрд╛рдд рдХреА рдФрд░ рдмрд╛рдбрд░-рдореЗрдиреНрд╣реЛрдл рдШрдЯрдирд╛ рдХреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛ ред

рдмрд╛рдбрд░-рдореЗрдиреНрд╣реЛрдл рдШрдЯрдирд╛, рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдПрдХ рднреНрд░рдо рднреА рд╣реИ, рдПрдХ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рд╡рд┐рдХреГрддрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЦреЛрдЬ рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреБрд▓рдирд╛рддреНрдордХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрд╡рд▓реЛрдХрди рдХрд╛ рдЕрдиреБрднрд╡ рдерд╛, рдЬреЛ рддрдм рдПрдХрддреНрд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рджреНрд╡рд╛рд░рд╛ рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдереА: " рдИрд╡рд┐рд▓ рддреБрд▓рдирд╛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ ред"

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрднреА рддрдХ рдХреЗрд╡рд▓ рджреЛ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрдп рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ :)ред

рдЙрджрд╛рд╣рд░рдг N рез


Zephyr RTOS рд╕рддреНрдпрд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рд╕реНрдЯреНрд░реИрдкрдЕрдк рдлрд╝рдВрдХреНрд╢рди рдПрдирд╛рд▓реЙрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдРрд╕реЗ рд╣реА рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ :

static char *mntpt_prepare(char *mntpt)
{
  char *cpy_mntpt;

  cpy_mntpt = k_malloc(strlen(mntpt) + 1);
  if (cpy_mntpt) {
    ((u8_t *)mntpt)[strlen(mntpt)] = '\0';
    memcpy(cpy_mntpt, mntpt, strlen(mntpt));
  }
  return cpy_mntpt;
}

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V575 [CWE-628] 'рдореЗрдорд╕реАрдкреА' рдлрд╝рдВрдХреНрд╢рди рдкреВрд░реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ ред рдЯрд░реНрдорд┐рдирд▓ рдирд▓ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'strcpy / strcpy_s' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред 427 shell.c

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ memcpy рд╕рдорд╛рд░реЛрд╣ рдкреНрд░рддрд┐рдпрд╛рдВ рд▓рд╛рдЗрди рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд░реНрдорд┐рдирд▓ рд╢реВрдиреНрдп рдирдХрд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рдВрджрд┐рдЧреНрдз рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд░реНрдорд┐рдирд▓ 0 рдпрд╣рд╛рдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

((u8_t *)mntpt)[strlen(mntpt)] = '\0';

рдирд╣реАрдВ, рдпрд╣рд╛рдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЯрд░реНрдорд┐рдирд▓ рд╢реВрдиреНрдп рдХреА рдирдХрд▓ рдЦреБрдж рдХреА рдЬрд╛рддреА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ mntpt рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрдирд╛ , cpy_mntpt рдирд╣реАрдВ ред рдирддреАрдЬрддрди, mntpt_prepare рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдЕрдкреВрд░реНрдг рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:

((u8_t *)cpy_mntpt)[strlen(mntpt)] = '\0';

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдЗрддрдирд╛ рднреНрд░рд╛рдордХ рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рдХреНрдпреЛрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдирддреАрдЬрддрди, рдПрдХ рдЫреЛрдЯреА рдФрд░ рд╕реАрдзреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рдЧрд▓рддреА рд╣реБрдИред рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рдореНрди рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

static char *mntpt_prepare(char *mntpt)
{
  char *cpy_mntpt;

  cpy_mntpt = k_malloc(strlen(mntpt) + 1);
  if (cpy_mntpt) {
    strcpy(cpy_mntpt, mntpt);
  }
  return cpy_mntpt;
}

рдЙрджрд╛рд╣рд░рдг N2


void myMemCpy(void *dest, void *src, size_t n) 
{ 
   char *csrc = (char *)src; 
   char *cdest = (char *)dest; 
   for (int i=0; i<n; i++) 
     cdest[i] = csrc[i]; 
}

рд╣рдордиреЗ рдЦреБрдж PVS-Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреЛрдб рдХреА рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рдореИрдВ рдЧрд▓рддреА рд╕реЗ рдЗрд╕реЗ StackOverflow рд╡реЗрдмрд╕рд╛рдЗрдЯ: C рдФрд░ рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рдорд┐рд▓рд╛: рдХреНрдпрд╛ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ?

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк PVS-Studio рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рд╕рд╣реА рд╕реВрдЪрдирд╛ рджреЗрдЧрд╛:

  • V104 рдХрд╛ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ 'i' рдХрд╛ рдЯрд╛рдЗрдк рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: i <n test.cpp 26
  • V108 рдЧрд▓рдд рдЗрдВрдбреЗрдХреНрд╕ рдкреНрд░рдХрд╛рд░: cdest [рдПрдХ рд╕рдВрд╕реНрдорд░рдг-рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ]ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореЗрдореНрд╕реЗрдЬрд╝ рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред test.cpp 27
  • V108 рдЧрд▓рдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рдХрд╛рд░: csrc [рд╕рдВрд╕реНрдорд░рдг-рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ]ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореЗрдореНрд╕реЗрдЬрд╝ рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред test.cpp 27

рджрд░рдЕрд╕рд▓, рдЗрд╕ рдХреЛрдб рдореЗрдВ рдПрдХ рджреЛрд╖ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рдХреЗ рдЙрддреНрддрд░реЛрдВ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд░ ред 64-рдмрд┐рдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ, рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ (рд╣рдо рд╡рд┐рджреЗрд╢реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ), рдЗрдВрдЯ рдЪрд░ 32-рдмрд┐рдЯ рд╣реЛрдЧрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди INT_MAX рдмрд╛рдЗрдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛ред рдЙрдиред 2 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред

рдХреЙрдкреА рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдмрдбрд╝реЗ рдмрдлрд░ рдХреЗ рд╕рд╛рде, рд╕рд╛рдЗрди рдЪрд░ рдХрд╛ рдПрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реЛрдЧрд╛, рдЬреЛ рд╕реА рдФрд░ рд╕реА ++ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдФрд░ рд╡реИрд╕реЗ, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрдЧреАред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдХрдард┐рди рд╡рд┐рд╖рдп рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ " рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реАрдм рд╣реИ ред"

рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдЪреЗрдХрд░рдореЗрдХреНрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реБрдЖ рдЬреЛ рдХрд┐ рдореЗрдореНрдЪреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдмрдирд╛рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рдирд╣реАрдВ рдЖрдпрд╛ред рдФрд░ рдХреЙрдкреА рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдЕрднреА рднреА рдЧрд▓рдд рдирд┐рдХрд▓рд╛ред рдпрд╣реА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реНрдпрдХреНрддрд┐ рдиреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднреА рдмрджрддрд░ рдХрд┐рдпрд╛ рдерд╛ред рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдХрд╛рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдп (рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рднреНрд░рдорд┐рдд) рд▓рд┐рдЦрдХрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рдкреНрд▓рд╕ рдиреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд▓рд┐рдП int рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдЬреЛрдбрд╝реА ред рдЕрд░реЗ рд╣рд╛рдБ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдЕрднреА рднреА рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдмрд╛рдзрд╛ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрд╢рд▓ рдЕрдиреБрдХреВрд▓рд┐рдд рдЕрдиреБрдХреВрд▓рд┐рдд рдореЗрдореНрдЪреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рд╣реИ ред рдпрд╣ рдордд рдХрд░реЛ :)

рдирд┐рд╖реНрдХрд░реНрд╖


рдЦреИрд░, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╛рддреНрд░рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реВрдВ рдФрд░ рд╢рд╛рдпрдж, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЧрд╣рди рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЬрдорд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рджрд░рдЕрд╕рд▓, рдХреЗрд╡рд▓ рдЕрдм рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рджреЗрдЦреЛ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрдкрдХреЗ рд╕реА / рд╕реА ++ / рд╕реА # / рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╛рдПрдВрдЧреЗ ред



рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдПрдВрдбреНрд░реА рдХрд╛рд░рдкреЛрд╡ред рдХреЙрдкреА рдлрдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдорд┐рд▓рд╛ рдореЗрд░рд╛ рдХрд▓реЗрдХреНрд╢рди рдСрдл рдмрдЧреНрд╕ ред

All Articles