C ++ рдХреЛрдб рдХреЗ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

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

рдЯреЗрд╕реНрдЯ 1:

int main() { vector<int> v; v.reserve(2); assert(v.capacity() == 2); v[0]; v[0] = 1; v[1] = 2; cout << v[0] << endl; v.reserve(100); cout << v[0] << endl; return 0; } 

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

RATS : рдХреБрдЫ рднреА рдирд╣реАрдВ
Cppcheck : рдХреБрдЫ рднреА рдирд╣реАрдВ
рдЧреНрд░реБрджрд┐рдд : рдХреБрдЫ рдирд╣реАрдВ
g ++ (-Wall рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде) : рдХреБрдЫ рдирд╣реАрдВ

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ? рдЗрд╕реЗ рд╕рдЯрд░ рдХреЗ рд╕рд╛рде рдордд рдХрд╣реЛ (рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЙрдирдХреА рдкреБрд╕реНрддрдХ "рд╕реА ++ рдореЗрдВ рдиреНрдпреВ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдкреНрд░реЙрдмреНрд▓рдоред рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рдХреЗ рд╕рд╛рде 40 рдирдИ рдкрд╣реЗрд▓реА рдЙрджрд╛рд╣рд░рдг" рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ )ред
рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдкрд░, рд╣рдо рдПрдХ рд╡реЗрдХреНрдЯрд░ v рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо 2 рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, C ++ рдорд╛рдирдХ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╡рд╣ рд╣рдореЗрдВ рд╡реЗрдХреНрдЯрд░ :: рд░рд┐рдЬрд░реНрд╡ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдмрддрд╛рддреА рд╣реИ? (рдЪреЗрддрд╛рд╡рдиреА: рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж)
"
 void reserve(size_type n); 
рдпрд╣ рдЖрдХрд╛рд░ рдореЗрдВ рдирд┐рдпреЛрдЬрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рдВрднрд╡рддрдГ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХрд╛ рдирд┐рдпрдВрддреНрд░рдгред рд░рд┐рдЬрд╝рд░реНрд╡ () рдХреЗ рдмрд╛рдж , рдореЗрдореЛрд░реА рд░рд┐рдХреНрд▓реЗрдХреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд╖рдорддрд╛ () рд░рд┐рдЬрд╝рд░реНрд╡ () рдореЗрдВ рджрд┐рдП рдЧрдП рддрд░реНрдХ рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдХреНрд╖рдорддрд╛ рдХреЗ рдкрд┐рдЫрд▓реЗ рдореВрд▓реНрдп () рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдореЗрдореЛрд░реА рдХрд╛ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рддрдм рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдорд╛рди () рд░рд┐рдЬрд╝рд░реНрд╡ рдХреЗ рдорд╛рди рд╕реЗ рдХрдо рд╣реИ () рддрд░реНрдХред рдпрд╣ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реИрдЦрд┐рдХ рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рддрд░реНрдХ рдорд╛рди max_size () рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдПрдХ long_error рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИред рдпрджрд┐ рдкреБрдирд░реНрд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ, рдкреЙрдЗрдВрдЯрд░реНрд╕ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред "

рдЬрдмрдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ assert (v.capacity () == 2); рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕реНрдерд╛рди рдкрд░, рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЖрд░рдХреНрд╖рд┐рдд () рдХреНрд╖рдорддрд╛ рд╡реГрджреНрдзрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЦрд░ рдХреЛрдб рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрди рд╣реИ (рдЬреЛ "рдкреНрд░реЛрдЧреНрд░рд╛рдорд░" рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдПрд╕реНрдЯрд░ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдкреЗрд╢реЗрд╡рд░ рд╕реНрд╡рд░ рдорд╛рдирддреЗ рд╣реИрдВ)ред рджреВрд╕рд░реЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╕реНрд╡рдпрдВ рдорд╛рдирдХ рд╕реЗ рд╕реАрдЦрд╛ рд╣реИ, рд░рд┐рдЬрд╝рд░реНрд╡ () рджрд┐рдП рдЧрдП рддрд░реНрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП Satter рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ (v.capacity ()> = 2) ред рдореИрдВ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдЖрдЧреЗ рдФрд░ рднреА рдмреБрд░рд╛ред " рд╡реЗрдХреНрдЯрд░ <рдЯреА> :: рдСрдкрд░реЗрдЯрд░ [] рдСрдкрд░реЗрдЯрд░ рдПрдХ рд╕реАрдорд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдирдХ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред " - рдЧрдЯрд░ ред рд╕рдм рдХреБрдЫ рдХрд╛ рдХрд╛рд░рдг рджрдХреНрд╖рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдРрд╕реЗ рдХрдИ рдЪреЗрдХ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рдордп рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рднрд╛рд╡реА рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдкрдВрдХреНрддрд┐ v [0] рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ ; v.at (0) рдкрд░; рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЙрдбрд╝рд╛рди рднрд░реЗрдЧрд╛ред рдЬреЛ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡реЗрдХреНрдЯрд░ <T> :: рд╕реВрдЪрдХрд╛рдВрдХ рдореВрд▓реНрдп рдкрд░ рдПрдХ рд╕реАрдорд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдЦреНрдд рд╕рд┐рдлрд╛рд░рд┐рд╢, рдФрд░ рди рдХреЗрд╡рд▓ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВред

рд▓рд╛рдЗрдиреНрд╕ v [0] = 1; v [рез] = реи; рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЖрдХрд╛рд░ / рдЖрдХрд╛рд░ рдФрд░ рд░рд┐рдЬрд╝рд░реНрд╡ / рдХреНрд╖рдорддрд╛ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдпрд╛ рд╣рдЯрд╛рдХрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХ рдорд╛рди рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВред рд╣рдордиреЗ рдорд╛рдирдХ рд╕реЗ рдЖрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛, рд╣рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ (рдХрдо рд╕реЗ рдХрдо) рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХреЗред " рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдСрдкрд░реЗрдЯрд░ [] (рдпрд╛ рд╡рд┐рдзрд┐ рдкрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдХрд╛рд░ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред " рдЗрд╕рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╕рдЯрд░ рдФрд░ рдХрдИ рдЕрдиреНрдп рдкреЗрд╢реЗрд╡рд░реЛрдВ рдиреЗ рдЕрдкрдиреА рдкреБрд╕реНрддрдХреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ C ++ рдореЗрдВ рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХреА рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдЬреНрдЮрд╛рди рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдФрд░ рдореИрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЦреБрдж рдХреЛ рдмреЗрд╡рдХреВрдл рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ cout- s рдбрд╛рд▓рд╛? рдЖрдкрдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд▓реЛрдЧ рдЙрд╕ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╕рд╣рди рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ рдЬреЛ рддреАрд╕рд░реЗ рджрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣реА рдереА? рддреЛ, рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдРрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдкреЗрд╢реЗрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╕рдЯрд░ рдФрд░ рдорд╛рдпрд░реНрд╕ (рдФрд░ рдХрдИ рдЕрдиреНрдп) рдЬреИрд╕реЗ рдЧреБрд░реБрдУрдВ рджреНрд╡рд╛рд░рд╛ рдкреБрд╕реНрддрдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВред

рдФрд░ рдлрд┐рд░ рднреА, рдЙрджрд╛рд╣рд░рдг 1 рдореЗрдВ, рд╣рдо рдЕрдВрддрд┐рдо рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ cout << v [0] рдЖрдЙрдЯрдкреБрдЯ ; рд░рд┐рдЬрд░реНрд╡ (100) рдХреЗ рдмрд╛рдж? рдпрд╣ рд╕рд╣реА рд╣реИ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╢реВрдиреНрдп рдкрд░! рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрд░рдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ v [0] рдХреЛ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рджрд┐рдпрд╛ рдерд╛ред "рд╕рдорд╕реНрдпрд╛" рдмреИрдХрдЕрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╣реИред
рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдмрд╛рдд рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ v.reserve (2) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ ; v [0] = 1; v.resize (2) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ ; v [0] = 1; рдпрд╛ v.reserve (2); v.push_back (1) ! рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдЪреБрдкрдЪрд╛рдк рд╢рд╛рдВрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рднреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрд╡реИрдз рд╕реАрдорд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ, рдФрд░ v [0] рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ ; v.at (0) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ ред рдФрд░ рд╣рдорд╛рд░реА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдВ рдлрд┐рд░ рд╕реЗ рдЪреБрдкрдЪрд╛рдк рдЕрдЪреНрдЫреА рдереАрдВред рдЕрдд: рдирд╛рдЬреБрдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдиреИрддрд┐рдХрддрд╛ RATS, Cppcheck рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЧреНрд░реЗрдЧрд┐рдЯ рдкрд░ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдХрд▓рдХ рдХреЛ рдХрднреА-рдХрднреА рдПрдХ рдкрд╛рдЧрд▓ рдПрдирдХреЛрдбрд░ рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдареАрдХ рд╣реИ, рдпрд╣ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдЖрдкрдХреЗ рд╢рд┐рдХрдВрдЬрд╛ рдкрд░ рдЕрдкрдирд╛ рд╕реНрдерд╛рди рд▓реЗрддреА рд╣реИрдВ, рдФрд░ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рдЯреЗрд╕реНрдЯ 2:

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреБрд░рд╛рдХ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред рдирдП prettyFormat рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ Satter)ред рдЙрд╕реЗ рдирдВрдмрд░ рдФрд░ рдмрдлрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реНрдкреНрд░рд┐рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдирдВрдмрд░ рдХреЛ рдкрд░рд┐рдгрд╛рдореА рдмрдлрд░ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
 void prettyFormat(int i, char* buf) { sprintf(buf, "%4d", i); } int main() { vector<int> v; v.reserve(2); //.... char buf[5]; prettyFormat(10, buf); return 0; } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, prettyFormat рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ , рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд╛рд░ buf [10] ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдореЗрдВ рдЕрдм рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд░рд╣рдиреЗ рджреЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдХреБрдЫ рджреЗрдЦреЗрдЧрд╛? рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

RATS: рдСрди рд▓рд╛рдЗрди рдЪрд╛рд░ рдмрдл [5]; " рдЙрдЪреНрдЪ: рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдмрдлрд░ред рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрдЦрднрд╛рд▓ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реНрдЯреИрдХ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рдЪрд░рд┐рддреНрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИрдВред " рдЪрд░рд┐рддреНрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╡реЗ рд╕рд╣рд╛рдпрдХ рд╣реЛрддреЗ рд╣реИрдВред рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣рдорд▓реЛрдВред
Cppcheck : рдХреБрдЫ рднреА рдирд╣реАрдВ
рдЧреНрд░реБрджрд┐рдд : рдХреБрдЫ рдирд╣реАрдВ
g ++ (-Wall рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде) : рдХреБрдЫ рднреА рдирд╣реАрдВ

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

рдЯреЗрд╕реНрдЯ 3:

PrettyFormat рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдирдЗрдВрд╕реНрдЯрд╛рд▓реНрдпреВрдЯреЗрдб рдкреЙрдЗрдВрдЯрд░ рдЬреЛрдбрд╝реЗрдВред
 int* prettyFormat(int i, char* buf) { sprintf(buf, "%4d", i); int* a; return a; } int main() { ... 

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

рдЖрд░рдПрдЯреАрдПрд╕ : рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдорд╛рди рд╣реА (рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд╛рд░ рдмрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ [5];)
Cppcheck : рдСрди рд▓рд╛рдЗрди int * a; рдлреЗрдВрдХрддрд╛ (рддреНрд░реБрдЯрд┐) Uninitialized рдЪрд░: aред
рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди ...
g ++ (-Wall рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде) : рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ 'int * prettyFormat (int, char *)':
рдЪреЗрддрд╛рд╡рдиреА: 'a' рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЗрд╕ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЕрдирдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреБрдЫ рдкрд░рд┐рдЪрд┐рдд рдпрд╣ рдирд╣реАрдВ рд╣реИ? рд╡рд╣реА рдЪреЗрддрд╛рд╡рдиреА рдЬреЛ Cppcheck рдиреЗ рдЕрдВрддрддрдГ рджреАред
рдЖрдорддреМрд░ рдкрд░ рдЧреНрд░реИрдбрд┐рдЯ рдЪреБрдк рд╣реИред

рдЯреЗрд╕реНрдЯ 4:

рд╣рд╛рд╕реНрдп рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ prettyFormat рдлрд╝рдВрдХреНрд╢рди рдмрджрд▓реЗрдВ:
 int* prettyFormat(int i, char* buf) { sprintf(buf, "%4d", i); int* a; fopen("filename", "r"); char buf2[5]; strcpy(buf2, buf); return a; } 

рдлреЛрдкреЗрди рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЦреЛрд▓рддрд╛ рд╣реИ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛, рдПрдХ рд╕реНрдерд╛рдиреАрдп buf2 рдмрдлрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ buf, рдЬрд┐рд╕реЗ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛ strcpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЗрдЦрддреЗ рд╣реИрдВ рдХреМрди рдХрд┐рддрдирд╛ рджреЗрддрд╛ рд╣реИред

RATS: рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП char buf2 [5]; char buf [10] рдлрд┐рдХреНрд╕реНрдб-рд╕рд╛рдЗрдЬрд╝ рдХреИрд░реЗрдХреНрдЯрд░ рдмрдлрд╝рд░реНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рджреЗрдЦрднрд╛рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╣реА рдЪреЗрддрд╛рд╡рдиреАред
рдФрд░ рдЕрдВрдд рдореЗрдВ: "рдЙрдЪреНрдЪ: strcpy
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рджрд┐рдП рдЧрдП рддрд░реНрдХ 2 рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдиреЗрдЧреА
рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реЛрддрд╛ рд╣реИред тАЭ
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ buf2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░реЗрдЧрд╛ред
рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдХрдИ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред рдФрд░ рдЖрдЧреЗ рдЪрд▓рддреЗ рд╣реИрдВред
Cppcheck : (рддреНрд░реБрдЯрд┐) рдЕрдирдзрд┐рдХреГрдд рдЪрд░: aред
рдХреБрдЫ рдкрд░рд┐рдЪрд┐рдд, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдХреНрд╖рдорд╛ рдХрд░реЗрдВред
g ++ (-Wall рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде) : рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХреА рддрд░рд╣ рд╣реАред

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

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

PS рдореИрдВ рдХреЛрдб рд╕рдВрд╢реЛрдзрди рдмреНрд▓реЙрдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдкрд░реНрдпрд╛рдкреНрдд рдХрд░реНрдо рдирд╣реАрдВ рд╣реИред рдирд╣реАрдВ, рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░реНрдо рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрд╕ рдЕрдЧрд░ рднреАрдбрд╝ рдирд╣реАрдВ рд╣реИ - "рдпрд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ рдХреНрдпреЛрдВ рдирд╣реАрдВ ..."ред

PPS Habrasociety рдХреЛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦреЗрдВ!

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


All Articles