{"id":353156,"date":"2024-05-20T22:22:28","date_gmt":"2024-05-20T22:22:28","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=353156"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-20T22:22:28","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=353156","title":{"rendered":"<span>\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/c3e\/861\/248\/c3e86124895f4c09f3b880b2ab921b8d.png\" alt=\"\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c3e\/861\/248\/c3e86124895f4c09f3b880b2ab921b8d.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u044f\u0432\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0438 \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b. \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 &#171;\u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442&#187; \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"na-chyom-osnovany-nablyudeniya\">\u041d\u0430 \u0447\u0451\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p>\u0421 \u0446\u0435\u043b\u044c\u044e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430 PVS-Studio \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b. \u041d\u0430\u0439\u0434\u044f \u043e\u0448\u0438\u0431\u043a\u0438, \u043c\u044b \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, <a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/examples\/\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c<\/a> \u0438\u0445 \u0438 \u043f\u0438\u0448\u0435\u043c <a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/inspections\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u043f\u0440\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0432\u0441\u0435 \u044d\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438, \u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a. \u0417\u0430 \u0440\u0435\u0434\u043a\u0438\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043e\u043d\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b \u043a\u043e\u0434\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 C, C++, C#, Java. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043e\u043f\u0438\u0448\u0443 7 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u043a \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/li>\n<li>\u0417\u043b\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>memset<\/em>.<\/li>\n<li>\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f.<\/li>\n<li>\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c.<\/li>\n<li>\u041d\u0435\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b\u0435 \u0447\u0438\u0441\u043b\u0430: 0, 1, 2.<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 (off-by-one error).<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b. \u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043d\u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0437\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430. \u0414\u0440\u0443\u0433\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, PVS-Studio \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u043e \u043d\u0435 \u0432\u0441\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0432\u0440\u0435\u0434\u0438\u0442.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"effekt-posledney-stroki\">\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/294\/8f5\/170\/2948f5170d653ed03652c813bf7b9e97.png\" alt=\"\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/294\/8f5\/170\/2948f5170d653ed03652c813bf7b9e97.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u044e \u043f\u0430\u0442\u0442\u0435\u0440\u043d. \u0412\u043f\u0435\u0440\u0432\u044b\u0435 \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0435\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0435\u0449\u0451 \u0432 2014 \u0433\u043e\u0434\u0443. \u0424\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430: \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043e\u0434\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0431\u043b\u043e\u043a\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u044f\u0441\u043d\u044e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434\u0430 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Godot Engine (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">String SoftBody::get_configuration_warning() const {   ....   Transform t = get_transform();   if ((ABS(t.basis.get_axis(0).length() - 1.0) > 0.05 ||        ABS(t.basis.get_axis(1).length() - 1.0) > 0.05 ||        ABS(t.basis.get_axis(0).length() - 1.0) > 0.05)) {     if (!warning.empty())   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f <a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/terms\/0068\/\">Copy-Paste<\/a> \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0431\u0435\u0440\u0451\u0442 \u0438 \u0434\u0432\u0430\u0436\u0434\u044b \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043a\u043e\u0434\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">ABS(t.basis.get_axis(0).length() - 1.0) > 0.05<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043e\u043d \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 0 \u043d\u0430 1, \u0430 \u0432\u043e\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c 0 \u043d\u0430 2 \u043e\u043d \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u0442. \u041a\u043e\u0433\u0434\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430, \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0447\u0442\u043e \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d.<\/p>\n<p>  <\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0432 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">TEST(RegisterContextMinidump, ConvertMinidumpContext_x86_64) {   MinidumpContext_x86_64 Context;   ....   Context.rax = 0x0001020304050607;   Context.rbx = 0x08090a0b0c0d0e0f;   ....   Context.eflags = 0x88898a8b;   Context.cs = 0x8c8d;   Context.fs = 0x8e8f;   Context.gs = 0x9091;   Context.ss = 0x9293;    \/\/ &lt;=   Context.ds = 0x9495;   Context.ss = 0x9697;    \/\/ &lt;=   llvm::ArrayRef&lt;uint8_t> ContextRef(reinterpret_cast&lt;uint8_t *>(&amp;Context),                                      sizeof(Context));   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438. \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432\u0440\u044f\u0434 \u043b\u0438 \u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Copy-Paste, \u043d\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u043e\u0441\u043f\u0435\u0448\u0438\u043b \u0438 \u043f\u043e \u043d\u0435\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <em>ss<\/em>, \u0430 \u043d\u0435 \u0432 <em>es<\/em>.<\/p>\n<p>  <\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435.<\/strong> \u041e\u0448\u0438\u0431\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0435\u0449\u0451 \u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u0445 \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0438 \u043d\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u043b\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u041d\u043e \u0432\u0435\u0434\u044c \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b. \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0431\u0430\u0433\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u044f\u0437\u044b\u043a\u0430\u043c C \u0438 C++, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043a\u043e\u0434 \u0438\u0437 \u043c\u0438\u0440\u0430 Java. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u0430 \u043c\u043d\u043e\u044e \u0432 IntelliJ IDEA Community Edition (Java).<\/p>\n<p>  <\/p>\n<pre><code class=\"java\">private static boolean isBeforeOrAfterKeyword(String str, boolean trimKeyword) {   return (trimKeyword ? LoadingOrder.BEFORE_STR.trim() :            LoadingOrder.BEFORE_STR).equalsIgnoreCase(str) ||          (trimKeyword ? LoadingOrder.AFTER_STR.trim() :            LoadingOrder.AFTER_STR).equalsIgnoreCase(str) ||          LoadingOrder.BEFORE_STR_OLD.equalsIgnoreCase(str) ||         \/\/ &lt;=          LoadingOrder.BEFORE_STR_OLD.equalsIgnoreCase(str);           \/\/ &lt;= }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u044f\u0432\u043d\u0430\u044f \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c. \u0421 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0445\u043e\u0436\u0438\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f, \u043e\u0442\u043a\u0440\u044b\u0432 \u0441\u0442\u0430\u0440\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0260\/\">\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a>&#171;.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0443 \u044f \u0434\u0430\u043b \u0442\u0430\u043a\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435? \u041e\u043d \u043d\u0430\u0432\u0435\u044f\u043d \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0435\u0439 \u0441 &#171;\u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043c\u0435\u0442\u0440\u043e\u0432&#187; \u0438\u0437 \u043c\u0438\u0440\u0430 \u0430\u043b\u044c\u043f\u0438\u043d\u0438\u0437\u043c\u0430. \u042f \u0447\u0438\u0442\u0430\u043b \u043f\u0440\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0430\u043b\u044c\u043f\u0438\u043d\u0438\u0441\u0442\u044b \u0447\u0430\u0441\u0442\u043e \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0434\u044a\u0435\u043c\u0430. \u041f\u0440\u0438\u0447\u0451\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0435 \u0432 \u0443\u0441\u0442\u0430\u043b\u043e\u0441\u0442\u0438, \u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043c\u0435\u043d\u0435\u0435 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u043c\u0438. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e, \u0441\u043a\u043e\u0440\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u0442\u044c \u0438 \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0410\u043b\u044c\u043f\u0438\u043d\u0438\u0441\u0442 \u0442\u0435\u0440\u044f\u0435\u0442 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0441\u043f\u0435\u0448\u0438\u0442 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u044a\u0451\u043c \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435. \u041f\u0438\u0441\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u0441\u043a\u0443\u0447\u043d\u043e. \u041c\u044b \u043d\u0430\u0439\u0434\u0451\u043c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u0436\u0435, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0442\u043e\u0440\u043e\u043f\u0438\u0442\u0441\u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0440\u0430\u0434\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442 \u0441 \u0440\u0443\u0442\u0438\u043d\u043e\u0439, \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0443\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0434\u0443\u043c\u0430\u0442\u044c \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e\u0441\u043b\u0430\u0431\u0435\u0432\u0430\u0435\u0442, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0431\u043b\u043e\u043a\u0435 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u0421 \u043e\u0431\u0437\u043e\u0440\u043e\u043c \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f. \u0421\u043a\u0443\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0439 \u043a\u043e\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f, \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u043e \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b. \u0412\u043e\u0442 \u0442\u0430\u043a \u0432 \u043a\u043e\u0434\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0442 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u043e\u0439, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u0414\u0435\u043b\u0430\u044f \u043e\u0431\u0437\u043e\u0440 \u043a\u043e\u0434\u0430, \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0443\u0434\u0435\u043b\u0438\u0442\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u043c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430.<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"zlopoluchnaya-funkciya-memset\">\u0417\u043b\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f memset<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/8b1\/a1e\/374\/8b1a1e37487f145491ac70d5f00b8ea9.png\" alt=\"\u0417\u043b\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f memset\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8b1\/a1e\/374\/8b1a1e37487f145491ac70d5f00b8ea9.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u044f\u0437\u044b\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>memset<\/em>. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043d\u0430 C, \u043d\u043e \u0435\u0451 \u043d\u0435\u0440\u0435\u0434\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0438 \u0432 C++ \u043a\u043e\u0434\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">void* memset( void* dest, int ch, size_t count );           \/\/ \u0421 void* std::memset( void* dest, int ch, std::size_t count ); \/\/ \u0421++<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 <em>count<\/em> \u043f\u0435\u0440\u0432\u044b\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u0431\u0443\u0444\u0435\u0440\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <em>dest<\/em>, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <em>(unsigned char) ch<\/em>. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li>C \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 <a href=\"https:\/\/en.cppreference.com\/w\/c\/string\/byte\/memset\">memset<\/a>.<\/li>\n<li>C++ \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/string\/byte\/memset\">std::memset<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u2014 \u0447\u0435\u043c\u043f\u0438\u043e\u043d \u0421 \u0438 C++ \u043c\u0438\u0440\u0430 \u043f\u043e \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044e \u043a \u0441\u0435\u0431\u0435 \u0431\u0430\u0433\u043e\u0432. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u0438\u0448\u043d\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f * \u0438\u043b\u0438, \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0432 \u0438\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e. \u0418\u043b\u0438 \u0432 \u043b\u0438\u0448\u043d\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u0445 \u0432\u0437\u044f\u0442\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 &amp;. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0442\u0430\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  <\/p>\n<p><strong>\u0417\u0430\u0431\u044b\u043b\u0438 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c *.<\/strong> \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430 FAR Manager v2 for Linux (Far2l, C++). \u0418\u0437-\u0437\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <em>sizeof<\/em> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043d\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">int64_t FileList::VMProcess(int OpCode,                             void *vParam,                             int64_t iParam) {   ....   PluginInfo *PInfo = (PluginInfo *)vParam;   memset(PInfo, 0, sizeof(PInfo));   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">memset(PInfo, 0, sizeof(*PInfo));<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041b\u0438\u0448\u043d\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u0437\u044f\u0442\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 &amp;.<\/strong> \u041a\u043e\u0434 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Energy Checker SDK (\u0421). \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <em>sizeof<\/em> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043d\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <em>WIN32_FIND_DATA<\/em>, \u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0435 4 \u0438\u043b\u0438 8 \u0431\u0430\u0439\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f Win32 \u0438\u043b\u0438 Win64 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">int plh_read_pl_folder(PPLH_PL_FOLDER_INFO pconfig) {   ....   WIN32_FIND_DATA file_data;   ....   memset(     &amp;file_data,     0,     sizeof(&amp;file_data)   );   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e: <em>sizeof(file_data)<\/em>. \u0415\u0449\u0451 \u043b\u0443\u0447\u0448\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>memset<\/em>, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0443\u043b\u044f\u043c\u0438 \u0435\u0449\u0451 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">WIN32_FIND_DATA file_data = { };<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043b\u0438 &amp; \u0438 *.<\/strong> \u041f\u0440\u043e\u0435\u043a\u0442 Wolfenstein 3D (\u0421). \u0417\u0434\u0435\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">void CG_RegisterItemVisuals( int itemNum ) {   ....   itemInfo_t *itemInfo;   ....   memset( itemInfo, 0, sizeof( &amp;itemInfo ) );   .... }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430.<\/strong> \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Open source emulator PS4 (C++), \u0430\u0432\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0441\u043f\u0443\u0442\u0430\u043b <em>sizeof<\/em> c <em>countof<\/em>. \u041e\u043d \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e <em>sizeof<\/em> \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u043c\u043d\u043e\u0436\u0438\u043b \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">struct GnmCmdPSShader {   ....   uint32_t reserved[27]; };  int PS4API sceGnmSetPsShader350(....) {   ....   memset(param->reserved, 0, sizeof(param->reserved) * sizeof(uint32_t));    return SCE_OK; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u0434\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">memset(param->reserved, 0, sizeof(param->reserved));<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435.<\/strong> \u041a\u0441\u0442\u0430\u0442\u0438, \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>memset<\/em> \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043d\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u041c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043d\u0438\u0445 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0360\/\">\u0421\u0430\u043c\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 \u043c\u0438\u0440\u0435 \u0421\/\u0421++<\/a>&#171;. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0433\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <em>memset<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 \u043a\u043e\u043d\u0446\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0442\u0435\u0440\u0435\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 WebRTC (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">void AsyncSocksProxySocket::SendAuth() {   ....   char * sensitive = new char[len];   pass_.CopyTo(sensitive, true);   request.WriteString(sensitive);  \/\/ Password   memset(sensitive, 0, len);   delete [] sensitive;   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0446\u0435\u043b\u044f\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b \u0443\u0434\u0430\u043b\u044f\u0442 \u044d\u0442\u043e\u0442 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>memset<\/em>. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u0440\u0430\u0437 \u0431\u0443\u0444\u0435\u0440 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042d\u0442\u0430 \u0442\u0435\u043c\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439, \u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v597\/\">V597<\/a>: \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 PVS-Studio.<\/li>\n<li><a href=\"https:\/\/cwe.mitre.org\/data\/definitions\/14.html\">CWE-14<\/a>: Compiler Removal of Code to Clear Buffers.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0388\/\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u043a\u043e\u0434, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>memset<\/em>. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u043e\u0431\u0437\u043e\u0440 \u043a\u043e\u0434\u0430, \u043f\u043e\u0438\u0449\u0438\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438.<\/p><\/blockquote>\n<p>\u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>memset<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">MyStruct foo; memset(foo, 0, sizeof(foo));<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0449\u0435 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435 \u043e\u0431\u043d\u0443\u043b\u044f\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0438\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">MyStruct foo = { };<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u043d\u0443\u043b\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0432 C++, \u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u043d\u0443\u0442\u044c \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>std::fill<\/em>. \u041f\u043e\u044f\u0441\u043d\u044e \u044d\u0442\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0439 \u043c\u043d\u043e\u044e \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Notepad++ (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">#define CONT_MAP_MAX 50 int _iContMap[CONT_MAP_MAX]; .... DockingManager::DockingManager() {   ....   memset(_iContMap, -1, CONT_MAP_MAX);   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0434\u0443\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 50 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <em>int<\/em>, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c -1. \u041d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>memset<\/em> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 12 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0xFFFFFFFF. \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c -1, \u043d\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0435\u0437\u0435\u043d\u0438\u0435. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0x0000FFFF. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <em><a href=\"https:\/\/en.cppreference.com\/w\/cpp\/algorithm\/fill\">std::fill<\/a><\/em> \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0443 \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">\/\/ since C++11 std::fill(std::begin(_iContMap), std::end(_iContMap), -1);  \/\/ since C++20 std::ranges::fill(_iContMap, -1);<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"nevernye-funkcii-sravneniya\">\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/1c0\/f88\/38b\/1c0f8838bf6d18474a7eb8481f1cdcf6.png\" alt=\"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/1c0\/f88\/38b\/1c0f8838bf6d18474a7eb8481f1cdcf6.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041b\u044e\u0434\u044f\u043c \u0441\u043a\u0443\u0447\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u044d\u0442\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442 \u0438 \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0442\u0430\u043c \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u0430 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0443. \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0442\u043e\u0440\u043e\u043f\u044f\u0442\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0442\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0422\u043e\u0440\u043e\u043f\u044f\u0442\u0441\u044f \u043e\u043d\u0438 \u0438 \u043f\u0440\u0438 \u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430. \u0422\u044f\u0436\u0435\u043b\u043e \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043a\u043e\u0434\u0435. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u0435 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f &#171;\u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438&#187;. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439. \u041f\u0440\u043e\u0435\u043a\u0442 Apache Flink (Java).<\/p>\n<p>  <\/p>\n<pre><code class=\"java\">@Override public boolean equals(Object o)  {   ....   CheckpointStatistics that = (CheckpointStatistics) o;   return id == that.id &amp;&amp;     savepoint == that.savepoint &amp;&amp;     triggerTimestamp == that.triggerTimestamp &amp;&amp;     latestAckTimestamp == that.latestAckTimestamp &amp;&amp;     stateSize == that.stateSize &amp;&amp;     duration == that.duration &amp;&amp;     alignmentBuffered == that.alignmentBuffered &amp;&amp;     processedData == processedData &amp;&amp;     persistedData == that.persistedData &amp;&amp;     numSubtasks == that.numSubtasks &amp;&amp;     numAckSubtasks == that.numAckSubtasks &amp;&amp;     status == that.status &amp;&amp;     Objects.equals(checkpointType, that.checkpointType) &amp;&amp;     Objects.equals(       checkpointStatisticsPerTask,        that.checkpointStatisticsPerTask); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u0448\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443? \u0414\u0443\u043c\u0430\u044e, \u043d\u0435\u0442. \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0441\u043a\u0443\u0447\u043d\u043e \u0438 \u043f\u0438\u0441\u0430\u0442\u044c, \u0438 \u0447\u0438\u0442\u0430\u0442\u044c. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0438 \u0432\u044b \u043f\u043e\u043b\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0435\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c. \u0412\u043e\u0442 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0441 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u043e\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"java\">processedData == processedData<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430 \u0441 \u0441\u043e\u0431\u043e\u0439. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"java\">processedData == that.processedData<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u044c \u0432 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445. \u041f\u0440\u043e\u0435\u043a\u0442 eShopOnContainers (C#).<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">private bool CheckSameOrigin(string urlHook, string url) {   var firstUrl = new Uri(urlHook, UriKind.Absolute);   var secondUrl = new Uri(url, UriKind.Absolute);    return firstUrl.Scheme == secondUrl.Scheme &amp;&amp;          firstUrl.Port == secondUrl.Port &amp;&amp;          firstUrl.Host == firstUrl.Host; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443. \u041f\u043e\u043b\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e \u0441 \u0441\u043e\u0431\u043e\u0439. \u041a\u0441\u0442\u0430\u0442\u0438, \u0437\u0434\u0435\u0441\u044c \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043f\u0440\u0438\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0411\u0438\u043d\u0433\u043e. \u0412\u0438\u0434\u0438\u043c\u043e, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u0430 \u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u043a\u0443\u0447\u043d\u0430\u044f \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u0435\u043b\u0438\u0442\u044c \u0435\u0439 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u0435 \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u043f\u0440\u0435\u0434\u0435\u043b \u0442\u043e\u0433\u043e, \u0432 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443. \u041f\u0440\u043e\u0435\u043a\u0442 Skia Graphics Engine (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">inline bool operator==(const SkPDFCanon::BitmapGlyphKey&amp; u,                        const SkPDFCanon::BitmapGlyphKey&amp; v) {   return memcmp(&amp;u, &amp;u, sizeof(SkPDFCanon::BitmapGlyphKey)) == 0; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442 <em>u<\/em> \u043f\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c \u0441 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u043c-\u0442\u043e, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e \u0441 \u0441\u043e\u0431\u043e\u0439. \u041e\u0448\u0438\u0431\u043a\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0435\u0439\u0448\u0438\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Azure Service Fabric (\u0421++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">template &lt;typename TK, typename TV> static bool MapCompare(const std::map&lt;TK, TV>&amp; lhs,                        const std::map&lt;TK, TV>&amp; rhs) {   if (lhs.size() != rhs.size()) { false; }    return std::equal(lhs.begin(), lhs.end(), rhs.begin()); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d\u043e\u043a\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <em>false<\/em>. \u041a\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043d\u043e \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u0417\u0434\u0435\u0441\u044c \u0437\u0430\u0431\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <em>return<\/em>. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">if (lhs.size() != rhs.size()) { return false; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Roslyn (C#).<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">protected override bool AreEqual(object other) {   var otherResourceString = other as LocalizableResourceString;   return     other != null &amp;&amp;     _nameOfLocalizableResource ==       otherResourceString._nameOfLocalizableResource &amp;&amp;     _resourceManager == otherResourceString._resourceManager &amp;&amp;     _resourceSource == otherResourceString._resourceSource &amp;&amp;     .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 <em><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/csharp\/1049\/\">NullReferenceException<\/a><\/em>. \u041d\u0430 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e <em>null<\/em> \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 <em>otherResourceString<\/em>, \u0430 \u043d\u0435 <em>other<\/em>.<\/p>\n<p>  <\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0509\/\">\u0417\u043b\u043e \u0436\u0438\u0432\u0451\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a>&#171;.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u044f \u0441\u043a\u0430\u0436\u0443: &#171;\u0443\u0434\u0435\u043b\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430&#187;, \u0442\u043e \u044d\u0442\u043e \u0432\u0440\u044f\u0434 \u043b\u0438 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0439\u0434\u0443 \u043a \u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u0431\u043e\u043b\u0435\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u0440\u043d\u043e.<\/p>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u041f\u043e\u0434\u0441\u0442\u0440\u0430\u0445\u0443\u0439\u0442\u0435 \u0441\u0435\u0431\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043a\u043e\u0434\u0430, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a PVS-Studio. \u041e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u043a\u043e\u0434\u0443.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.<\/p><\/blockquote>\n<p>\u041f\u0440\u043e \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u043b \u0432 \u043c\u0438\u043d\u0438-\u043a\u043d\u0438\u0433\u0435 &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/1053\/\">60 \u0430\u043d\u0442\u0438\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0434\u043b\u044f \u0421++ \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430<\/a>&#171;. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044b\u0439 \u0432\u0440\u0435\u0434\u043d\u044b\u0439 \u0441\u043e\u0432\u0435\u0442 &#171;\u041a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 \u043a\u043e\u0434&#187;. \u0422\u0430\u043c \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u043a\u0430\u043a \u043d\u0435 \u043d\u0430\u0434\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0430 \u043f\u043e\u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u0434\u043e. \u0422\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a, \u043d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e.<\/p>\n<p>  <\/p>\n<p>\u0415\u0449\u0451 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0421++20, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/default_comparisons\">\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/a> \u043a\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430, \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f. \u041b\u0438\u0448\u044c \u0432 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443. \u041f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u044f\u0437\u044b\u043a\u0430 C++!<\/p>\n<p>  <\/p>\n<h2 id=\"nevernye-funkcii-kopirovaniya\">\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/0b3\/52f\/e52\/0b352fe52cd843922f95346a2ee4a01c.png\" alt=\"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/0b3\/52f\/e52\/0b352fe52cd843922f95346a2ee4a01c.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u043e, \u0442\u043e \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043d\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0441 \u0438\u0437\u043b\u0438\u0448\u043d\u0438\u043c \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0437\u043c\u043e\u043c. \u042f \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u0435\u043a\u0441\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043c\u043d\u0435 \u043f\u0435\u0440\u0435\u0443\u0441\u043b\u043e\u0436\u043d\u0451\u043d\u043d\u044b\u043c. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u044d\u0442\u0430 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>strdup<\/em> \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Zephyr RTOS (\u0421).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">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; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <em>memcpy<\/em> \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u0447\u043a\u0443, \u043d\u043e \u043d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 <a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/terms\/0088\/\">\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043b\u044c<\/a>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0443\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">((u8_t *)mntpt)[strlen(mntpt)] = '\\0';<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u043e \u043e\u043d \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u0417\u0434\u0435\u0441\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043b\u044c \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0430\u043c \u0432 \u0441\u0435\u0431\u044f. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 <em>mntpt<\/em>, \u0430 \u043d\u0435 \u0432 <em>cpy_mntpt<\/em>. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>mntpt_prepare<\/em> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443, \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0443\u043b\u0451\u043c.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">((u8_t *)cpy_mntpt)[strlen(mntpt)] = '\\0';<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e, \u0437\u0430\u0447\u0435\u043c \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0442\u0430\u043a \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e \u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">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; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 LFortran (\u0421). \u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u0438 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0432 \u043d\u043e\u0432\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">void _lfortran_strcat(char** s1, char** s2, char** dest) {     int cntr = 0;     char trmn = '\\0';     int s1_len = strlen(*s1);     int s2_len = strlen(*s2);     int trmn_size = strlen(&amp;trmn);     char* dest_char = (char*)malloc(s1_len+s2_len+trmn_size);     for (int i = 0; i &lt; s1_len; i++) {         dest_char[cntr] = (*s1)[i];         cntr++;     }     for (int i = 0; i &lt; s2_len; i++) {         dest_char[cntr] = (*s2)[i];         cntr++;     }     dest_char[cntr] = trmn;     *dest = &amp;(dest_char[0]); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430\u043c\u0438 \u0438\u043b\u0438 \u043d\u0435\u0442. \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u0430\u043a\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u044f \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0431\u0443\u0434\u0443 \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <em>strlen<\/em> \u0432\u043c\u0435\u0441\u0442\u043e <em>sizeof<\/em>, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0443\u043b\u044f \u0432 \u0431\u0430\u0439\u0442\u0430\u0445.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">char trmn = '\\0'; int trmn_size = strlen(&amp;trmn);<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u0438\u043c\u0432\u043e\u043b <em>trmn<\/em> \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430. \u0415\u0451 \u0434\u043b\u0438\u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u0430\u044f. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em>trmn_size<\/em>, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0443\u043b\u044f, \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u0430 0.<\/p>\n<p>  <\/p>\n<p>\u041d\u0443\u0436\u043d\u043e \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <em>sizeof<\/em>, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">int trmn_size = sizeof(trmn);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u0434 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c, \u043d\u043e \u044d\u0442\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u041f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u043e\u0442\u0441\u044b\u043b\u0430\u044e \u043a \u0441\u0442\u0430\u0442\u044c\u0435 &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0845\/\">\u041a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u043a<\/a>&#171;.<\/p>\n<p>  <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043e\u0437\u044c\u043c\u0443 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 QuantConnect Lean (C#).<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary> \/\/\/ Copy contents of the portfolio collection to a new destination. \/\/\/ &lt;\/summary> \/\/\/ &lt;remarks> \/\/\/ IDictionary implementation calling the underlying Securities collection \/\/\/ &lt;\/remarks> \/\/\/ &lt;param name=\"array\">Destination array&lt;\/param> \/\/\/ &lt;param name=\"index\">Position in array to start copying&lt;\/param> public void CopyTo(KeyValuePair&lt;Symbol, SecurityHolding>[] array, int index) {   array = new KeyValuePair&lt;Symbol, SecurityHolding>[Securities.Count];   var i = 0;   foreach (var asset in Securities)   {     if (i >= index)     {       array[i] = new KeyValuePair&lt;Symbol,SecurityHolding>(asset.Key,                                                           asset.Value.Holdings);     }     i++;   } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0438 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044e \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442, \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 <em>array<\/em> \u0432\u043d\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u043c.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <em>array<\/em> \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0432 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0430 \u043d\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em>array<\/em>, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u0432 \u043c\u0435\u0442\u043e\u0434, \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u0431\u044b\u043b\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 <em>out<\/em>. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">public void CopyTo(out KeyValuePair&lt;Symbol, SecurityHolding>[] array,                    int index) {   array = new KeyValuePair&lt;Symbol, SecurityHolding>[Securities.Count];   .... }<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p><\/blockquote>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u043d\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u043c\u0435\u0441\u0442\u043d\u044b.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043f\u0440\u043e \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0438\u0445 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u2014 \u043d\u0435\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u0435:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u0421\u043a\u0443\u0447\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u0410 \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u0440\u0435\u0434\u043a\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0443\u0434\u0430\u0447\u043d\u044b\u043c :).<\/li>\n<li>\u0412 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0447\u043b\u0435\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041a\u043e\u0434 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u044b\u043c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u0430\/\u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b.<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u0434\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437 \u043d\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u0412\u0441\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u044b \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0436\u0443\u0442, \u0447\u0442\u043e \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e. <\/p>\n<p>  <\/p>\n<h2 id=\"oshibki-raboty-s-datami-i-vremenem\">\u041e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/d12\/dce\/a72\/d12dcea720b634a98a26904e834340e5.png\" alt=\"\u041e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d12\/dce\/a72\/d12dcea720b634a98a26904e834340e5.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u0434\u0435, \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0438 \u0434\u0430\u0442\u0430\u043c\u0438. \u042d\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u0435, \u0438 \u043c\u043d\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0431\u0430\u0433\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u0441\u0430\u043c\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Umbraco (C#). \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0441\u0430 <em>DateTime<\/em>.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">public static DateTime TruncateTo(this DateTime dt,                                   DateTruncate truncateTo) {   if (truncateTo == DateTruncate.Year)     return new DateTime(dt.Year, 0, 0);   if (truncateTo == DateTruncate.Month)     return new DateTime(dt.Year, dt.Month, 0);   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0441\u044f \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u0438\u0432\u044b\u043a \u0432\u0441\u0451 \u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041d\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u043d\u0435 \u043c\u0430\u0441\u0441\u0438\u0432, \u0430 \u0434\u0430\u0442\u044b. \u041f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u043d\u044c \u0438\u043b\u0438 \u043c\u0435\u0441\u044f\u0446 \u0438\u043c\u0435\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 1, \u0430 \u043d\u0435 0. \u0412\u044b\u0437\u043e\u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432 \u0432 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0432\u044b\u0431\u0440\u043e\u0441\u0443 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <em>ArgumentOutOfRangeException<\/em>. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">if (truncateTo == DateTruncate.Year)   return new DateTime(dt.Year, 1, 1); if (truncateTo == DateTruncate.Month)   return new DateTime(dt.Year, dt.Month, 1);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 MPC-HC (C++). \u041c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">void CSyncAP::RenderThread() {   ....   REFERENCE_TIME rtRefClockTimeNow;   if (m_pRefClock) {     m_pRefClock->GetTime(&amp;rtRefClockTimeNow);   }   LONG lLastVsyncTime =     (LONG)((m_llEstVBlankTime - rtRefClockTimeNow) \/ 10000);   ....<\/code><\/pre>\n<p>  <\/p>\n<p>}<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em>rtRefClockTimeNow<\/em> \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d\u0430 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u0445. \u0412\u0438\u0434\u0438\u043c\u043e, \u0437\u0430\u0431\u044b\u043b\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Tizen (\u0421). \u0417\u0430\u043f\u0443\u0442\u0430\u043b\u0438\u0441\u044c \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">static void preview_down_cb(....) {   ....   int delay = 0.5;   double fdelay;   fdelay = ((double)delay \/ 1000.0f);   DbgPrint(\"Long press: %lf\\n\", fdelay);   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0438\u043f\u0430 <em>int<\/em> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <em>0.5<\/em> \u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 500 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">int delay = 500;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 MSBuild (C#). \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">internal static void Trace(....) {   ....   long now = DateTime.UtcNow.Ticks;    float millisecondsSinceLastLog =     (float)((now - s_lastLoggedTicks)\/10000L);   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u044f\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0442\u0438\u043f\u0443 <em>float<\/em>. \u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0430 \u043d\u0435 \u043f\u043e\u0441\u043b\u0435. \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0438\u0441\u044c \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">float millisecondsSinceLastLog = (float)(now - s_lastLoggedTicks)\/10000L;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Linux Kernel (\u0421). \u0417\u0430\u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u044f\u0442\u0443\u044e.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">static ssize_t lp8788_show_eoc_time(struct device *dev,         struct device_attribute *attr, char *buf) {   struct lp8788_charger *pchg = dev_get_drvdata(dev);   char *stime[] = { \"400ms\", \"5min\", \"10min\", \"15min\",       \"20min\", \"25min\", \"30min\" \"No timeout\" };   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0435\u0436\u0434\u0443 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u043c \u043d\u0435\u0442 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u0441\u043b\u0438\u043f\u0430\u044e\u0442\u0441\u044f, \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f &#171;30minNo timeout&#187;.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0550\/\">31 \u0444\u0435\u0432\u0440\u0430\u043b\u044f<\/a>&#187; \u0438 &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0801\/\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u0442 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043b\u0438 77 \u0434\u0435\u0444\u0435\u043a\u0442\u043e\u0432 \u0432 Qt 6<\/a>&#171;.<\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b, \u0441\u043a\u043e\u043b\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. \u0412 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043d\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u044f \u0435\u0451 \u043d\u0435 \u0432\u0438\u0436\u0443.<\/p>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u041f\u0440\u043e\u0441\u0442\u043e \u0437\u043d\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u043a\u043e\u0434, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0432\u0440\u0435\u043c\u044f \u0438 \u0434\u0430\u0442\u044b, \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0441\u043b\u043e\u0436\u0435\u043d \u0438 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438. \u0423\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u0442\u0430\u043a\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u0438 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u042e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u2014 \u0442\u043e\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"neschastlivye-chisla-0-1-2\">\u041d\u0435\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b\u0435 \u0447\u0438\u0441\u043b\u0430: 0, 1, 2<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/3a6\/227\/829\/3a6227829389bddbb94a5cef879e175c.png\" alt=\"\u041d\u0435\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b\u0435 \u0447\u0438\u0441\u043b\u0430: 0, 1, 2\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3a6\/227\/829\/3a6227829389bddbb94a5cef879e175c.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0427\u0438\u0441\u043b\u0430 0, 1, 2 \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438\u043b\u0438 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u0438\u043c\u0451\u043d \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u0435\u043b \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u0431 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437 \u043a\u043e\u0434 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u0435\u043d, \u0442\u043e \u043d\u0430 \u043d\u0451\u043c \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f. \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u042d\u0442\u043e \u0440\u043e\u0434\u043d\u0438\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043e\u0448\u0438\u0431\u043e\u043a \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"nachnyom-s-opechatok-v-indeksah\">\u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445<\/h3>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 LibreOffice (C++). \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f Copy-Paste \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">Sequence&lt; OUString > FirebirdDriver::   getSupportedServiceNames_Static() throw (RuntimeException) {   Sequence&lt; OUString > aSNS( 2 );   aSNS[0] = \"com.sun.star.sdbc.Driver\";   aSNS[0] = \"com.sun.star.sdbcx.Driver\";   return aSNS; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043d\u0435 \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443, \u0435\u0451 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438. \u0412 \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438 <em>sdbc<\/em> \u043d\u0430 <em>sdbcx<\/em>, \u043d\u043e \u0437\u0430\u0431\u044b\u043b\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Quake III Arena (\u0421). \u0415\u0449\u0451 \u043e\u0434\u043d\u0430 Copy-Paste \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">int VL_FindAdjacentSurface(....) {   ....   if (fabs(dir[0]) > test->radius ||       fabs(dir[1]) > test->radius ||       fabs(dir[1]) > test->radius)   {   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0435\u0449\u0451 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442 \u0441\u0435\u0431\u044f \u0438 \u044d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041a\u043e\u043c\u0431\u043e. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u0430\u043a \u043c\u0430\u0433\u043d\u0438\u0442 \u0442\u044f\u043d\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 \u0431\u0430\u0433\u0438.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 OpenCOLLADA (C++). \u0411\u043e\u043b\u0435\u0435 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u0430\u044f \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 (2 \u0432\u043c\u0435\u0441\u0442\u043e 1).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">struct short2 {   short values[2];   short2(short s1, short s2)   {     values[0] = s1;     values[2] = s2;   }   .... };<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435 \u0441 &#171;\u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443&#187; (off-by-one error), \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u0435\u0431\u044f :). \u041c\u044b \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c, \u043a\u0430\u043a \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044f\u0441\u044c, \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0443\u0441\u0438\u043b\u0438\u0432\u0430\u044e\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438. \u042d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u044c \u0435\u0451 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 .NET Core SDK (C#). \u0414\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">public bool MatchesXmlType(IList&lt;XPathItem> seq, int indexType) {   ....   typBase = typBase.Prime;   for (int i = 0; i &lt; seq.Count; i++)   {     if (!CreateXmlType(seq[0]).IsSubtypeOf(typBase))       return false;   }    return true; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0446\u0438\u043a\u043b\u0435 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <em>seq<\/em>. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">if (!CreateXmlType(seq[i]).IsSubtypeOf(typBase))<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"teper-posmotrim-na-opechatki-v-imenah-peremennyh\">\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/h3>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Doom (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">uint AltOp::fixedLength() {   uint l1 = exp1->fixedLength();   uint l2 = exp1->fixedLength();    if (l1 != l2 || l1 == ~0u)     return ~0;    return l1; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u0434 \u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Copy-Paste \u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c <em>exp1<\/em> \u043d\u0430 <em>exp2<\/em>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Vangers (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">const char* iGetJoyBtnNameText(int vkey, int lang) {   ....   if (vkey >= VK_STICK_SWITCH_1 &amp;&amp; vkey &lt;= VK_STICK_SWITCH_9)   {      ret = (lang)       ? iJoystickStickSwitch2[vkey - VK_STICK_SWITCH_1]       : iJoystickStickSwitch2[vkey - VK_STICK_SWITCH_1];     return ret;   }   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">ret = (lang)   ? iJoystickStickSwitch2[vkey - VK_STICK_SWITCH_1]   : iJoystickStickSwitch1[vkey - VK_STICK_SWITCH_1];<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Boost (C++).<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">point3D operator\/(const point3D &amp;p1, const point3D &amp;p2) {   return point3D(p1.x\/p2.x, p1.y\/p2.y, p1.z\/p1.z); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0437\u0434\u0435\u0441\u044c: <em>p1.z\/p1.z<\/em>.<\/p>\n<p>  <\/p>\n<h3 id=\"drugie-varianty-opechatok\">\u0414\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a<\/h3>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Azure PowerShell (C#). \u041e\u0448\u0438\u0431\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">protected override void ProcessRecordInternal() {   ....   if (this.ShouldProcess(this.Name,     string.Format(\"Creating Log Alert Rule '{0}' in resource group {0}\",       this.Name, this.ResourceGroupName)))   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">string.Format(\"Creating Log Alert Rule '{0}' in resource group {1}\",               this.Name, this.ResourceGroupName))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u044e &#171;<a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0713\/\">\u041d\u043e\u043b\u044c, \u043e\u0434\u0438\u043d, \u0434\u0432\u0430, \u0424\u0440\u0435\u0434\u0434\u0438 \u0437\u0430\u0431\u0435\u0440\u0451\u0442 \u0442\u0435\u0431\u044f<\/a>&#171;.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u0430 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u0443\u0447\u043d\u044b\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043d\u0443\u0436\u0435\u043d \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c. \u041d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435.<\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">point3D operator\/(const point3D &amp;p1, const point3D &amp;p2) {   return point3D(p1.x\/p2.x, p1.y\/p2.y, p1.z\/p1.z); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0435\u043b\u044c\u0437\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0434 \u0441\u043b\u043e\u0436\u0435\u043d. \u041a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043e\u043d \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442. \u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0434\u0430\u043d\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u043a \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043b\u0430\u0441\u0441. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u0417\u0430\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u044f \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430 0, 1, 2.<\/p>\n<p>  \u0425\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u043e\u043c \u0432 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u043a\u043e\u0434\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0430.<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"oshibka-na-edinicu-off-by-one-error\">\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 (off-by-one error)<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/181\/c23\/6a3\/181c236a34efce6f150ca0bd10aabb27.png\" alt=\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/181\/c23\/6a3\/181c236a34efce6f150ca0bd10aabb27.png\"\/><\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435. \u041e\u043d \u0434\u0430\u0432\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d:<\/p>\n<p>  <\/p>\n<ul>\n<li>Wikipedia. <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%86%D1%83\">\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443<\/a>.<\/li>\n<li>Common Weakness Enumeration. <a href=\"https:\/\/cwe.mitre.org\/data\/definitions\/193.html\">CWE-193: Off-by-one Error<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0432\u044b\u0445\u043e\u0434\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u0414\u0443\u043c\u0430\u044e, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u043d\u0438\u043c\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u042d\u0442\u043e \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u0441 \u0441\u0431\u0438\u0432\u0430\u043b\u043e \u0441 \u0442\u043e\u043b\u043a\u0443, \u0447\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f, \u0430 \u043d\u0435 \u0441 \u0435\u0434\u0438\u043d\u0438\u0446\u044b.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043e\u0448\u0438\u0431\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0434\u0430\u0432\u043d\u043e \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b. \u041e\u0434\u043d\u0430\u043a\u043e, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u043d\u0430\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043e\u0448\u0438\u0431\u043e\u043a, \u0434\u0443\u043c\u0430\u044e, \u044f \u0441\u043c\u043e\u0433 \u0435\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u0430\u0436\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e \u0438\u0445 \u0432 \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0430\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 Umbraco (C#). \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">protected virtual string VisitMethodCall(MethodCallExpression m) {     ....     if (m.Arguments.Count == 2)     {       var n1 = Visit(m.Arguments[0]);       var f = m.Arguments[2];       .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">var f = m.Arguments[1];<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u0438 \u043a \u0433\u043b\u0430\u0432\u0435 \u043f\u0440\u043e \u0447\u0438\u0441\u043b\u0430 0, 1, 2. \u0414\u0443\u043c\u0430\u044e, \u0432\u0430\u0441 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u0435\u0442. \u0412\u0437\u0430\u0438\u043c\u043d\u043e\u0435 \u043f\u0440\u0438\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 CMake (\u0421). \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">static int64_t expand(struct archive_read *a, int64_t end) {   ....   if ((lensymbol = read_next_symbol(a, &amp;rar->lengthcode)) &lt; 0)     goto bad_data;    if (lensymbol > (int)(sizeof(lengthbases)\/sizeof(lengthbases[0])))     goto bad_data;   ....   len = lengthbases[lensymbol] + 2;   .... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0443 <em>lengthbases<\/em> \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u044b\u0448\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;>&#8217; \u0432\u043c\u0435\u0441\u0442\u043e &#8216;>=&#8217;. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">if (lensymbol >= (int)(sizeof(lengthbases)\/sizeof(lengthbases[0])))<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 ELKI (Java). \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"java\">public List&lt;double[]> points;  @Override public double[] computeMean() {   \/\/ Not supported except for singletons.   return points.size() == 1 ? points.get(1) : null; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"java\">return points.size() == 1 ? points.get(0) : null;<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p><strong>\u0421\u043e\u0432\u0435\u0442.<\/strong> \u0425\u043e\u0442\u044f \u0432\u0441\u0435 \u0437\u043d\u0430\u044e\u0442 \u043f\u0440\u043e \u044d\u0442\u0443 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a, \u043e\u043d\u0438 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f. \u0411\u0443\u0434\u044c\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0439.<\/p>\n<p>  \u0425\u043e\u0440\u043e\u0448\u0438\u043c\u0438 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430\u043c\u0438 \u0432 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u044b\u0445\u043e\u0434\u0430 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043a\u043e\u0434\u0430.<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"podelites-svoimi-nablyudeniyami\">\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438!<\/h2>\n<p>  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u043f\u0440\u043e\u0448\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0438\u0445 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432\u044b \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043b\u043b\u0435\u0433 \u043f\u043e \u0446\u0435\u0445\u0443. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 PVS-Studio, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044f \u0442\u043e\u0436\u0435 \u0437\u0430\u043c\u0435\u0447\u0443 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u043e\u0432\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0438 \u043e\u043f\u0438\u0448\u0443 \u0438\u0445 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0435\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u0443\u044e <a href=\"https:\/\/pvs-studio.ru\/ru\/subscribe\/\">\u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443<\/a>.<\/p>\n<p>  <\/p>\n<h2 id=\"pvs-studio\">PVS-Studio<\/h2>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u0431\u0430\u0433\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PVS-Studio. \u042d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0432 \u043d\u043e\u0432\u043e\u043c \u043a\u043e\u0434\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0444\u0435\u043a\u0442\u044b, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e \u0442\u0440\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e: <a href=\"https:\/\/pvs-studio.ru\/ru\/pvs-studio\/download\/?utm_source=website&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=1064\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c PVS-Studio<\/a>.<\/p>\n<p>  <\/p>\n<h2 id=\"dopolnitelnye-ssylki\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/h2>\n<p>  <\/p>\n<ol>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/examples\/\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0260\/\">\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/0485\/\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0360\/\">\u0421\u0430\u043c\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 \u043c\u0438\u0440\u0435 \u0421\/\u0421++<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0509\/\">\u0417\u043b\u043e \u0436\u0438\u0432\u0451\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0723\/\">\u041d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0845\/\">\u041a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u043a<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0550\/\">31 \u0444\u0435\u0432\u0440\u0430\u043b\u044f<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0801\/\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u0442 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043b\u0438 77 \u0434\u0435\u0444\u0435\u043a\u0442\u043e\u0432 \u0432 Qt 6<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/0713\/\">\u041d\u043e\u043b\u044c, \u043e\u0434\u0438\u043d, \u0434\u0432\u0430, \u0424\u0440\u0435\u0434\u0434\u0438 \u0437\u0430\u0431\u0435\u0440\u0451\u0442 \u0442\u0435\u0431\u044f<\/a>.<\/li>\n<li><a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/posts\/cpp\/1053\/\">60 \u0430\u043d\u0442\u0438\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0434\u043b\u044f \u0421++ \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430<\/a>.<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0441 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434: Andrey Karpov. <a href=\"https:\/\/pvs-studio.com\/en\/blog\/posts\/cpp\/1064\/\">Common patterns of typos in programming<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/756872\/\"> https:\/\/habr.com\/ru\/articles\/756872\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/c3e\/861\/248\/c3e86124895f4c09f3b880b2ab921b8d.png\" alt=\"\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c3e\/861\/248\/c3e86124895f4c09f3b880b2ab921b8d.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u044f\u0432\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0438 \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b. \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 &#171;\u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442&#187; \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"na-chyom-osnovany-nablyudeniya\">\u041d\u0430 \u0447\u0451\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p>\u0421 \u0446\u0435\u043b\u044c\u044e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430 PVS-Studio \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b. \u041d\u0430\u0439\u0434\u044f \u043e\u0448\u0438\u0431\u043a\u0438, \u043c\u044b \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, <a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/examples\/\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c<\/a> \u0438\u0445 \u0438 \u043f\u0438\u0448\u0435\u043c <a href=\"https:\/\/pvs-studio.ru\/ru\/blog\/inspections\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u043f\u0440\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0432\u0441\u0435 \u044d\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438, \u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a. \u0417\u0430 \u0440\u0435\u0434\u043a\u0438\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043e\u043d\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b \u043a\u043e\u0434\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 C, C++, C#, Java. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043e\u043f\u0438\u0448\u0443 7 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u043a \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/li>\n<li>\u0417\u043b\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>memset<\/em>.<\/li>\n<li>\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f.<\/li>\n<li>\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c.<\/li>\n<li>\u041d\u0435\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b\u0435 \u0447\u0438\u0441\u043b\u0430: 0, 1, 2.<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 (off-by-one error).<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b. \u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043d\u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0437\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430. \u0414\u0440\u0443\u0433\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, PVS-Studio \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u043e \u043d\u0435 \u0432\u0441\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0432\u0440\u0435\u0434\u0438\u0442.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-353156","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/353156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=353156"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/353156\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=353156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=353156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=353156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}