рдирд┐рдбрд░ рд╕рдВрд░рдХреНрд╖рдгред рд╕реНрдореГрддрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЬрдВрдЧ рдореЗрдВ

рдореЛрдЬрд╝рд┐рд▓рд╛ рдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд╡рд╛рдВрдЯрдо рд╕реАрдПрд╕рдПрд╕ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рдореЗрдореЛрд░реА рдХреЗ рдЕрдиреБрдХреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд░рд╕реНрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЖрда рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рд░рд╕реНрдЯ рдореЗрдВ рдореБрдЦреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛ред

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


рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдХреНрдпрд╛ рд╣реИ?


рдЬрдм рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдХреНрд╕рд░ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВред рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдорд╛рдиреНрдп рдореЗрдореЛрд░реА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред рд╕реБрд░рдХреНрд╖рд╛ рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг:

  • рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ (рдЙрдкрдпреЛрдЧ-рдмрд╛рдж-рдореБрдХреНрдд);
  • рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ dereferencing;
  • рдПрдХрддрд░рдлрд╛ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ;
  • рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рд╣реА рд╕реЗрд▓ рдХреЛ рджреЛ рдмрд╛рд░ (рдбрдмрд▓-рдлреНрд░реА) рдореБрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ;
  • рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ред

рдЕрдзрд┐рдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП, рдорд╛рдЗрдХрд▓ рд╣рд┐рдХреНрд╕ рдХреА рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдХреНрдпрд╛ рд╣реИ , рд╕рд╛рде рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд▓реЗрдЦ рджреЗрдЦреЗрдВ ред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рджреБрд░реНрдШрдЯрдирд╛ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо: рд╕реВрдЪрдирд╛ рд░рд┐рд╕рд╛рд╡, рдордирдорд╛рдирд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рд░рд┐рдореЛрдЯ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрдиред

рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди


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

рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдореГрддрд┐ рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рд╕реЗ рдЧрдВрднреАрд░ рднреЗрджреНрдпрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реВрдЪрдирд╛ рд░рд┐рд╕рд╛рд╡ рдФрд░ рдордирдорд╛рдирд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрд╡рдВрдЯрди / рд░рд┐рд▓реАрдЬ


рдЬрдм рд╣рдо рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЗрд╕ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реАрдорд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рд╣реЛрддреА рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрд▓ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛрдиреЗ рддрдХ рдкреБрд░рд╛рдирд╛ рдбреЗрдЯрд╛ рд╡рд╣рд╛рдВ рд░рд╣рддрд╛ рд╣реИред

рдмрдлрд╝рд░реНрд╕


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

рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣


рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд░реВрдЯреАрди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред рд╕рдмрд░реВрдЯреАрди рдХреЗ рдЕрдВрдд рдореЗрдВ, рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛрдб рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреЙрдЗрдВрдЯрд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЬрдм рдЖрдк рд╡рд╛рдкрд╕реА рдкрддреЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рддреАрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрддрд╛ рд╣реИ:

  1. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ (рд░рд┐рдЯрд░реНрди рдкрддрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред
  2. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд░реИрд╢ (рдкрддрд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧреИрд░-рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдореЛрд░реА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ)ред
  3. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдирд╣реАрдВ (рд╡рд╛рдкрд╕реА рдкрддрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ)ред

рднрд╛рд╖рд╛рдПрдВ рд╕реНрдореГрддрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ


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

рдореИрдиреБрдЕрд▓ рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди


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

рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЬреЛ рдЖрд╕рд╛рди рд╣реИрдВ:

  • рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ;
  • рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрд┐рдд рди рдХрд░реЗрдВ;
  • рдмрдлрд░ рдХреЗ рдмрд╛рд╣рд░ рдореЗрдореЛрд░реА рдкрдврд╝реЗрдВред


рд╕реНрдореГрддрд┐ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдирд┐рд░реНрджреЗрд╢

рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕


рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЕрдиреБрдЪрд┐рдд рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рдФрд░ рд╕реАрдорд╛ рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдирд┐рдпрдорд┐рдд рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░ рд╕реНрд╡рдпрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдРрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬреЛ рдореВрд▓ рд╕реВрдЪрдХ рдХреЛ рдХрдИ рдЙрдкрдпреЛрдЧреА рд╕рд╛рд░ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдкреЙрдЗрдВрдЯрд░ рдХреА рдЬреАрд╡рдирд╢реИрд▓реА рдХреЛ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреЛрдкрд┐рдВрдЧ рдиреАрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

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

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣


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

рдпрджреНрдпрдкрд┐ рдЬреАрд╕реА рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЗрдореЛрд░реА рд╣рдореЗрд╢рд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рддрд░реАрдХреЗ рд╕реЗ рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдХрднреА-рдХрднреА рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреА рд▓рд╛рдЧрдд рдорд┐рд╢рди-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рд╣реИ: рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 5 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЕрдзрд┐рдХрд╛рд░


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

  1. рдкреНрд░рддреНрдпреЗрдХ рдорд╛рди рдореЗрдВ рдПрдХ рдЪрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рд▓рд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдорд╛рд▓рд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  3. рдЬрдм рдорд╛рд▓рд┐рдХ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореВрд▓реНрдп рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рдЪрд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдпрд╛ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рдирд┐рдпрдо рд╕рдВрдХрд▓рдХ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЙрдзрд╛рд░рдХрд░реНрддрд╛ рдЪреЗрдХрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рдПрдХ рдЪрд░ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░рд╕реНрдЯ рдЗрд╕ рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЪрд░ s1 рдФрд░ s2 рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдПрдХ рд╣реА рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рджреЛрд╣рд░реА-рдореБрдХреНрдд рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗ рдорд╛рди рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓рд╛ рдорд╛рд▓рд┐рдХ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдлрд┐рд░ рдПрдХ рдЕрдорд╛рдиреНрдп рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдХрд▓рдХ рдХреЛрдб рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред рдбреЗрдЯрд╛ рдХреА рдПрдХ рдЧрд╣рд░реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдпрд╛ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг 1 : рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг

 let s1 = String::from("hello"); let s2 = s1; //won't compile because s1 is now invalid println!("{}, world!", s1); 

рдЙрдзрд╛рд░ рдЪреЗрдХрд░ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рдФрд░ рд╕реЗрдЯ рдЪрд░ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЬрдВрдЧ рдЧреИрд░-рдореМрдЬреВрдж рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдЪрд░ рдФрд░ рдЭреВрд▓рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ r рдПрдХ рдореЗрдореЛрд░реА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ x рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рдкрд░ рдореБрдХреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ: рдПрдХ рд▓рдЯрдХрддрд╛ рд╣реБрдЖ рд╕реВрдЪрдХ рд╣реЛрддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд░ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг 2 : рд╣реИрдВрдЧрд┐рдВрдЧ рдкреЙрдЗрдВрдЯрд░

 let r; { let x = 5; r = &x; } println!("r: {}", r); 

рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЙрдбрд▓ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдореГрддрд┐ рддрдХ рд╕рд╣реА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ рдЖрдзрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрд╛рджрджрд╛рд╢реНрдд рдХрдордЬреЛрд░ рд╣реЛрдирд╛


рдХрдордЬреЛрд░ рд╕реНрдореГрддрд┐ рдХреЗ рдореБрдЦреНрдп рдкрд░рд┐рдгрд╛рдо:

  1. рдХреНрд░реИрд╢ : рдЕрдорд╛рдиреНрдп рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рдкреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред
  2. рд╕реВрдЪрдирд╛ рд░рд┐рд╕рд╛рд╡ : рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА, рдЬреИрд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб, рд╕рд╣рд┐рдд рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХрд╛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдкреНрд░рд╛рд╡рдзрд╛рдиред
  3. рдордирдорд╛рдирд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди (ACE) : рдХрд┐рд╕реА рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд▓рдХреНрд╖реНрдп рдорд╢реАрди рдкрд░ рдордирдорд╛рдирд╛ рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рджреВрд░рд╕реНрде рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди (RCE) рдХрд╣рддреЗ рд╣реИрдВред

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

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

рдореБрдХреНрдд рд╕реНрдореГрддрд┐ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ (рдЙрдкрдпреЛрдЧ-рдореБрдХреНрдд, рдбрдмрд▓ рдореБрдХреНрдд)


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

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

Uninitialized рдЪрд░


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

рдЬреИрд╕рд╛ рдХрд┐ C рдореЗрдВ рд╣реИ, Rust рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реИрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рдЖрд░рдВрднрд┐рдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди C рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрднреАрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

рдЙрджрд╛рд╣рд░рдг 3 : рдПрдХ рдЕрд╕рд┐рдВрдЪрд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

 fn main() { let x: i32; println!("{}", x); } 

рдЕрд╢рдХреНрдд рд╕рдВрдХреЗрдд


рдЬрдм рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХрдЪрд░реЗ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд░реИрд╢ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рд╕реЗ рдордирдорд╛рдирд╛ рдХреЛрдб ( 1 , 2 , 3 ) рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд░рд╕реНрдЯ рдореЗрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ: рд▓рд┐рдВрдХ рдФрд░ рд░реЙ рдкреЙрдЗрдВрдЯрд░реНрд╕ред рд▓рд┐рдВрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдЪреНрдЪреЗ рд╕рдВрдХреЗрдд рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЬрдВрдЧ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдХреЛ рд░реЛрдХрддреА рд╣реИ:

  1. рдЕрд╢рдХреНрдд рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдмрдЪреЗрдВред
  2. рдХрдЪреНрдЪреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдбреАрдлрд╝рд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред

рд░рд╕реНрдЯ рд╡рд┐рд╢реЗрд╖ Option рд╕рд╛рде рдмрджрд▓рдХрд░ рдЕрд╢рдХреНрдд рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдмрдЪрддрд╛ рд╣реИред Option рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╕рдВрднрд╡-рд╢реВрдиреНрдп рдорд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рднрд╛рд╖рд╛ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рдХреЗ рд╕рд╛рде рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрдиреНрдпрдерд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп) рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ? рдХреНрд╖рддрд┐ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдПрдХ рдЕрд▓рдЧ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмреНрд▓реЙрдХ рдореЗрдВ рдХрдЪреНрдЪреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдбреАрдлреНрд░реЗрдВрд╕рд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд░рд╕реНрдЯ рдирд┐рдпрдореЛрдВ рдХреЛ рдвреАрд▓рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдЪреНрдЪреЗ рд╕реВрдЪрдХ рдХреЛ dereferencing)ред


"рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ ... рдЙрд╕ рдЕрдВрдзреЗрд░реА рдЬрдЧрд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?"
- рдпрд╣ рдПрдХ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмреНрд▓реЙрдХ рд╣реИред рд╡рд╣рд╛рдВ рдХрднреА рдордд рдЬрд╛рдУ, рд╕рд┐рдореНрдмрд╛

рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ


рд╣рдордиреЗ рдЙрди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдореГрддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдХреЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдиреВрдиреА рд░реВрдк рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ред рдЙрдкрдпреЛрдЧ-рдмрд╛рдж-рдореБрдХреНрдд рдмрдЧ рдХреА рддрд░рд╣, рдЗрд╕ рддрд░рд╣ рдХреА рдкрд╣реБрдВрдЪ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдХреНрдд рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрднреА рднреА рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдЬреЛ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рдЖрдЙрдЯ-рдСрдл-рдмрд╛рдЙрдВрдбреНрд╕ рдПрдХреНрд╕реЗрд╕ рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдмрдлрд╝рд░реНрд╕ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдЕрдХреНрд╕рд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд▓реАрдХ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣рд┐рдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢ рд╕реВрдЪрдХ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдХреЗ рдПрд╕реАрдИ / рдЖрд░рд╕реАрдИ рднреЗрджреНрдпрддрд╛рдПрдВ рд╕рдВрднрд╡ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг 4: рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ (рд╕реА рдХреЛрдб)

 int main() { int buf[] = {0, 1, 2, 3, 4}; // print out of bounds printf("Out of bounds: %d\n", buf[10]); // write out of bounds buf[10] = 10; printf("Out of bounds: %d\n", buf[10]); return 0; } 

рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реБрд░рдХреНрд╖рд╛ рд╣рдореЗрд╢рд╛ рддрддреНрд╡реЛрдВ рдХреА рдкрд╣реБрдВрдЪ рдХреЗ рджреМрд░рд╛рди рд╕реАрдорд╛ рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рд╣реЛрддрд╛ рд╣реИ ред

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

рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗрд╡рд▓ рдЖрдзреА рд▓рдбрд╝рд╛рдИ рд╣реИ


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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрдореЛрд░реА рдПрд░рд░ рдХрд╣рд╛рдиреА рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬрдм рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЛрдб рдкрд░ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рд╣рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдореЗрдореЛрд░реА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд╢реЛрд╖рдг: рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди


Source: https://habr.com/ru/post/hi438288/


All Articles