рд╣рдЯрд╛рдПрдВ, C ++ рдореЗрдВ рдирдпрд╛ [] рдФрд░ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд╣рд░реА рдХрд┐рдВрд╡рджрдВрддрд┐рдпреЛрдВ

рдпрджрд┐ "рдирдпрд╛ []" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА C ++ рдХреЛрдб рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдереА, рддреЛ рдЖрдкрдХреЛ "рд╣рдЯрд╛рдПрдВ"] рдФрд░ "рд╣рдЯрд╛рдПрдВ" (рдмрд┐рдирд╛ рдХреЛрд╖реНрдардХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрд╕ рд╕рд░рдгреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╡рд╛рдЬрд┐рдм рд╕рд╡рд╛рд▓: рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ?

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

рд╕реА ++ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдзрд╛рд░рдгрд╛рдПрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╢рд╣рд░реА рдХрд┐рдВрд╡рджрдВрддрд┐рдпреЛрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпреЛрдВред

рд╣рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд╛рд▓рд╛рдХ рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╢рд╣рд░реА рдХрд┐рдВрд╡рджрдВрддрд┐рдпреЛрдВ рдХреЗ рд╕рдорд░реНрдердХреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧреАред рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рдареАрдХ рд╣реИ:

 class Class { public: ~Class() { printf( "Class::~Class()" ); } }; int main() { delete new Class[1]; return 0; } 

рд╕рд░рдгреА рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рдпрджрд┐ рдЖрдк рдКрдкрд░ рдХреЗ рджреЛ рдХрд┐рдВрд╡рджрдВрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рдирддреЗ рд╣реИрдВ, рддреЛ "рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛" - рд░рд┐рд╕рд╛рд╡ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрд╣реАрдВ рднреА, рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реА рдЬрд░реВрд░рдд рд╣реИред

рд╣рдо codepad.org рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЛрдб рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

  рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдмреНрд▓реЙрдХ рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рд╣реЛ рдЧрдИ
 рдирд┐рд░реНрдЧрдорди: рдирд┐рд░реНрдЧрдорди резреиF
 42 75 67 20 61 73 73 73 73 73 69 69 6 рдИ 20 77
 61 6 рдИ 74 65 64 20 2 рдбреА 20 77 77 77 2 рдИ 61 62
 62 79 79 2E 72 75 2F 76 61 63 61 6E 63 79

рдпрд╛рдж рд╣реИ рдХреНрдпрд╛ ??? рд╡рд╣ рдХреНрдпрд╛ рдерд╛?

рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг:

 int main() { delete new char[1]; return 0; } 

рдЬрд╛рд░реА рдХрд░рдирд╛:

  рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВред 

рдпрд╣рд╛рдВ, рдХрдо рд╕реЗ рдХрдо рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ?

рдХрд╛рд░рдг рд╡рд╣реА рд╣реИ рдЬреЛ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИред

рдЬрдм рдХреЛрдб рдореЗрдВ "рдирдпрд╛ рдкреНрд░рдХрд╛рд░ [рдЧрд┐рдирддреА]" рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди "рдСрдкрд░реЗрдЯрд░ рдирдпрд╛ [] ()" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЖрдо рддреМрд░ рдкрд░ рд╕рд┐рд░реНрдл рдореЙрд▓реЙрдХ () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, new_handler рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛) рдФрд░ (рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдирд╛) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред рдлрд┐рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред "рдирдП рдкреНрд░рдХрд╛рд░ [рдЧрд┐рдирддреА]" рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд░рдгреА рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рдкрддрд╛ рд╣реИред

рдЬрдм рдХреЛрдб рдореЗрдВ "рдбрд┐рд▓реАрдЯ [] рдкреЙрдЗрдВрдЯрд░" рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рд░рдгреА рдХреА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП (рдФрд░ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд▓рд┐рдП) рдЙрд╕реЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: "рдирдП рдкреНрд░рдХрд╛рд░ [рдЧрд┐рдирддреА]" рдирд┐рд░реНрдорд╛рдг рдореЗрдВ, рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рдереА, рдФрд░ "рд╣рдЯрд╛рдПрдВ []" рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреИрд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ? рдЪреВрдВрдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рдкрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕реЗ рдЕрдХреЗрд▓реЗ рдЗрд╕ рдкрддреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд░рдгреА рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреАред рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ; рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

"рдирдпрд╛ рдкреНрд░рдХрд╛рд░ [рдЧрд┐рдирддреА]" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрддрдиреА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рди рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ (рдЖрдорддреМрд░ рдкрд░ type size_t), рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдЪрдпрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдХрд▓рдХ, рдЬрдм "рдирдпрд╛ рдкреНрд░рдХрд╛рд░ [рдЧрдгрдирд╛]" рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрди рд╕реАрдЯреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХреЛрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, "рдирдпрд╛ рдкреНрд░рдХрд╛рд░ [рдЧрд┐рдирддреА]" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рдкрддрд╛ рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рддрддреНрд╡ рдХрд╛ рдкрддрд╛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдлрд╝рдВрдХреНрд╢рди "рдСрдкрд░реЗрдЯрд░ рдирдпрд╛ [] ()" рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкрддреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред

"рдбрд┐рд▓реАрдЯ []] рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдо" рдбрд┐рд▓реАрдЯ []] рдореЗрдВ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рдкрддрд╛ рд▓реЗрддрд╛ рд╣реИ, рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдкрддреЗ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ("рдирдИ []" рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрд╕реА рддрд░рд╣ рдШрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛), рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ - рдлрд╝рдВрдХреНрд╢рди рдХреЛ "рдСрдкрд░реЗрдЯрд░ рдбрд┐рд▓реАрдЯ [] ()" рдХрд╣рддрд╛ рд╣реИ, рдЗрд╕реЗ рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдкрддрд╛ рдмрддрд╛рддрд╛ рд╣реИред

рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдЙрд╕ рдкрддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдмрд╛рдж рдореЗрдВ рдореЗрдореЛрд░реА рдбреАрд▓реЙрд▓реЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЕрдм рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдЬрдм "рд╣рдЯрд╛рдПрдВ" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреЛрд╖реНрдардХ рдХреЗ рдмрд┐рдирд╛), рддреЛ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХрд╛ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрдХреНрд░рдо рдЦреЗрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдПрдХ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдлрд╝рдВрдХреНрд╢рди "рдСрдкрд░реЗрдЯрд░ рдбрд┐рд▓реАрдЯ ()" рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдкрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд▓реМрдЯреЗ рдлрд╝рдВрдХреНрд╢рди "рдСрдкрд░реЗрдЯрд░ рдирдпрд╛ [] ()" рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ? рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдорд╛рдирдХ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рджреГрд╢реНрдп C ++ 9 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо _heapchk) рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб _HEAP_OK, _CrtDumpMemorLeaks () рдХреЛрдИ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ) рджреЗрддрд╛ рд╣реИред рдпрд╣ рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реИ? рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕рдВрдХрд▓рдХ рдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рддреБрдЪреНрдЫ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдореЗрдореЛрд░реА рдХреЛ рдлреНрд░реА рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рддреБрд░рдВрдд рд╡рд╣реА рдкрддрд╛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ "рдСрдкрд░реЗрдЯрд░ рдирдпрд╛ [] ()" рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛ рд╣реИред рдХреЛрдИ рдкрддрд╛ рдСрдлрд╝рд╕реЗрдЯ рдирд╣реАрдВ - "рдирдпрд╛" (рдХреЛрд╖реНрдардХ рдХреЗ рдмрд┐рдирд╛) рдХрд╣рддреЗ рд╕рдордп рдареАрдХ рд╡реИрд╕рд╛ рд╣реАред рдпрд╣ рд╕рдВрдХрд▓рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред

рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ ...

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкрд╛рда рдореЗрдВ рдЙрдЪреНрдЪрддрд░ рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдФрд░ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рдпрд╛ рддреЛ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛? рдпреЗ рдЯрд╛рдЗрдкреЛрд╕ рдирд╣реАрдВ рд╣реИрдВ - рд╡реЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░ рдкреИрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ рдСрдкрд░реЗрдЯрд░ рдХреЛ [] () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдХреЛрдб рдореЗрдВ рдирдП рдкреНрд░рдХрд╛рд░ [рдЧрд┐рдирддреА] рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдирдП () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЛрдб рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реИ ред

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

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

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

рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ ... рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ред рдПрдХ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди "рдСрдкрд░реЗрдЯрд░ рдирдпрд╛ ()" рдФрд░ "рдСрдкрд░реЗрдЯрд░ рдирдпрд╛ [] ("), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдвреЗрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡рд┐рдВрдбреЛрдЬ рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдвреЗрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред рдЬрдм рдЖрдк "рдЧрд▓рдд" рд╣реАрдк рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

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

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

рджрд┐рдорд┐рддреНрд░реА рдореЗрд╢реНрдЪреЗрд░реАрдХреЛрд╡
рдбреЗрд╡рд▓рдкрд░ рдЙрддреНрдкрд╛рдж рд╡рд┐рднрд╛рдЧ

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


All Articles