{"id":3434,"date":"2024-08-05T08:17:00","date_gmt":"2024-08-04T23:17:00","guid":{"rendered":"http:\/\/43.203.250.216\/?p=3434"},"modified":"2024-08-04T17:18:51","modified_gmt":"2024-08-04T08:18:51","slug":"c%ec%97%90%ec%84%9c-%ec%98%a4%eb%b2%84%eb%9d%bc%ec%9d%b4%eb%93%9c%eb%90%9c-%ed%95%a8%ec%88%98%ea%b0%80-%ec%95%88%eb%b6%88%eb%9f%ac%ec%a0%b8%ec%9a%94","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=3434","title":{"rendered":"C++\uc5d0\uc11c \uc624\ubc84\ub77c\uc774\ub4dc\ub41c \ud568\uc218\uac00 \uc548\ubd88\ub7ec\uc838\uc694"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Data\ub77c\uace0 \ud558\ub294 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc758 \uae30\ucd08 \ud074\ub798\uc2a4\uac00 \uc788\ub2e4\uace0 \ud574\ubcf4\uc790. Data\uc758 type\uc5d0 \ub530\ub77c \ub85c\ub529 \ud558\ub294 \ubc29\ubc95\uc774 \uc11c\ub85c \ub2ec\ub77c\uc9c0\uae30 \ub54c\ubb38\uc5d0 loadData()\ub77c\uace0 \ud558\ub294 \uac00\uc0c1\ud568\uc218\ub97c \ud558\ub098 \uc815\uc758\ud574 \ub450\uace0, \uc0c1\uc18d\ubc1b\ub294 \ud074\ub798\uc2a4\ub4e4\uc740 \uc790\uae30\uac00 loading\ud558\ub294 \ubc29\ubc95\uc744 \uc815\uc758\ud558\ub3c4\ub85d \uad6c\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"9\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Data {\npublic:\n  Data(int v) { loadData(v); }\n  void dispValue() { cout &lt;&lt; \"Value is \" &lt;&lt; _val &lt;&lt; endl; }\n\nprotected:\n  \/\/ \uc0c1\uc18d\ubc1b\ub294 \ud074\ub798\uc2a4\uc5d0\uc11c \uad6c\ud604\ud574\uc57c \ud568.\n  \/\/ \ud638\ucd9c\ub418\uba74 \uc548\ub428.\n  virtual bool loadData(int v) {\n    cout &lt;&lt; \"Default loader, do not call me!\" &lt;&lt; endl;\n    return false;\n  }\n  int _val = 0;\n};<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Data\uc5d0\uc11c \uc0c1\uc18d\ubc1b\ub294 DerivedData \ud074\ub798\uc2a4\ub294 \uc790\uae30 \ubc84\uc804\uc758 loadData()\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud574\uc11c \uad6c\ud604\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"6\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class DerivedData : public Data {\npublic:\n  DerivedData(int v) : Data(v) {}\n\nprotected:\n  bool loadData(int v) override {\n    cout &lt;&lt; \"DerivedData1::loadData()\" &lt;&lt; endl;\n    _val = v;\n    return true;\n  }\n};<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">DerivedData\ub97c \uc0dd\uc131\ud558\uace0 100\uc73c\ub85c \ucd08\uae30\ud654\ud574\uc11c \uacb0\uacfc\ub97c \ubcf4\uc5ec\uc8fc\ub3c4\ub85d main()\uc744 \uc791\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int main(void) {\n  auto d = DerivedData(100);\n  d.dispValue();\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c \ucef4\ud30c\uc77c\ud558\uace0 \uc2e4\ud589\ud574\ubcf4\uc790.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ g++ .\/main.cpp \n$ .\/a.out \nDefault loader, do not call me!\nValue is 0<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\uc0c1\uacfc \ub2ec\ub9ac DerivedData\uc758 loadData()\uac00 \uc544\ub2cc Data\uc758 loadData()\uac00 \ubd88\ub9ac\uace0 \uc788\ub2e4. \ubd84\uba85\ud788 DevriedData\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4e4\uc5c8\ub294\ub370\ub3c4 \uc624\ubc84\ub77c\uc774\ub4dc\ud55c \uba64\ubc84\ud568\uc218\uac00 \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294 \uc774\uc720\ub294 \ubb34\uc5c7\uc77c\uae4c?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc608\uc81c\uc5d0\uc11c\ub294 Data\uc5d0\uc11c \uc0c1\uc18d \ubc1b\uc740 DerivedData \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uac00 \ud638\ucd9c\ub418\uae30 \uc804\uc5d0 Data\uc758 \uc0dd\uc131\uc790\uac00 \uba3c\uc800 \ud638\ucd9c\ub41c\ub2e4. Data\ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uc5d0\uc11c\ub294 \uac00\uc0c1\ud568\uc218\ub85c \uc815\uc758\ub41c loadData()\uc758 \uc624\ubc84\ub77c\uc774\ub4dc \uad6c\uc870\ub97c \ub530\ub77c \ub0b4\ub824\uac00\uc9c0 \uc54a\uace0 \ud604\uc7ac \ud074\ub798\uc2a4\uc778 Data\uc5d0 \uc815\uc758\ub418\uc5b4 \uc788\ub294 loadData() \ub97c \ubc14\uc778\ub529\ud55c\ub2e4. \uc544\uc9c1 DerrivedData \ud074\ub798\uc2a4\uac00 \ucd08\uae30\ud654 \ub418\uc9c0 \uc54a\uc740 \uc2dc\uc810\uc774\uae30 \ub54c\ubb38\uc5d0 \uae30\ucd08 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uc5d0\uc11c \ud30c\uc0dd \ud074\ub798\uc2a4\uc758 \uc624\ubc84\ub77c\uc774\ub4dc \uba64\ubc84\ub97c \ubc14\uc778\ub529\ud558\ub294 \uac83\uc740 \uc544\uc9c1 \uc54c\uc9c0 \ubabb\ud558\ub294 \uc815\ubcf4\ub97c \ucc38\uc870\ud574\uc57c \ud558\ub294 \uc77c\uc774\ub418\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scott Meyers\uc758 \uba85\uc11c\uc778 Effective C++\uc5d0\uc11c\ub3c4 \uc774 \ub0b4\uc6a9\uc744 \uc5b8\uae09\ud558\uace0 \uc788\uc5c8\ub2e4. &#8220;Item 9: Never call virtual functions during construction or destruction&#8221;(\uc0dd\uc131\uc790\ub098 \uc18c\uba78\uc790\uc5d0\uc11c \uac00\uc0c1\ud568\uc218\ub97c \uc808\ub300 \ud638\ucd9c\ud558\uc9c0 \ub9d0\uac83) \uc544\ub9c8\ub3c4 \ub2e4\uc2dc \uc815\ub3c5\ud560 \ub54c\uac00 \ub410\ub098 \ubcf4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\uacb0\ucc45\uc73c\ub85c \uc81c\uc2dc\ub418\ub294 \uac83\uc740 \uac00\uc0c1 \ud568\uc218\ub97c \ubd80\ub974\ub294 \ub300\uc2e0 \uad00\ub828\ud55c \uc815\ubcf4\ub97c \ud30c\ub77c\ubbf8\ud130\ub85c \ubc1b\uc544\uc11c \ucc98\ub9ac\ud558\ub294 \uac83\uc774\ub2e4. \uc704\uc758 \uacbd\uc6b0 \uc608\ub97c \ub4e4\uba74 loadData()\ub97c \uc77c\ubc18 \uba64\ubc84\ud568\uc218\ub85c \uc791\uc131\ud558\uace0 DataLoader\ub97c \ud30c\ub77c\ubbf8\ud130\ub85c \ub118\uaca8\uc8fc\ub294 \ubc29\ubc95\uc744 \uace0\ub824\ud574 \ubcfc\uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;iostream>\nusing namespace std;\n\nclass DataLoader {\npublic:\n  DataLoader(int v) { _val = v; }\n  int getValue() { return _val; }\n\nprivate:\n  int _val;\n};\n\nclass Data {\npublic:\n  Data(DataLoader &amp;ldr) { loadData(ldr); }\n  void dispValue() { cout &lt;&lt; \"Value is \" &lt;&lt; _val &lt;&lt; endl; }\n\nprotected:\n  bool loadData(DataLoader &amp;ldr) {\n    cout &lt;&lt; \"Load data \" &lt;&lt; ldr.getValue() &lt;&lt; endl;\n    _val = ldr.getValue();\n    return true;\n  }\n  int _val = 0;\n};\n\nclass DerivedData : public Data {\npublic:\n  DerivedData(DataLoader &amp;ldr) : Data(ldr) {}\n};\n\nint main(void) {\n  auto l = DataLoader(100);\n  auto d = DerivedData(l);\n  d.dispValue();\n}<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ .\/a.out \nLoad data 100\nValue is 100\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data\ub77c\uace0 \ud558\ub294 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc758 \uae30\ucd08 \ud074\ub798\uc2a4\uac00 \uc788\ub2e4\uace0 \ud574\ubcf4\uc790. Data\uc758 type\uc5d0 \ub530\ub77c \ub85c\ub529 \ud558\ub294 \ubc29\ubc95\uc774 \uc11c\ub85c \ub2ec\ub77c\uc9c0\uae30 \ub54c\ubb38\uc5d0 loadData()\ub77c\uace0 \ud558\ub294 \uac00\uc0c1\ud568\uc218\ub97c \ud558\ub098 \uc815\uc758\ud574 \ub450\uace0, \uc0c1\uc18d\ubc1b\ub294 \ud074\ub798\uc2a4\ub4e4\uc740 \uc790\uae30\uac00 loading\ud558\ub294 \ubc29\ubc95\uc744 \uc815\uc758\ud558\ub3c4\ub85d \uad6c\uc131\ud55c\ub2e4. Data\uc5d0\uc11c \uc0c1\uc18d\ubc1b\ub294 DerivedData \ud074\ub798\uc2a4\ub294 \uc790\uae30 \ubc84\uc804\uc758 loadData()\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud574\uc11c \uad6c\ud604\ud55c\ub2e4. DerivedData\ub97c \uc0dd\uc131\ud558\uace0 100\uc73c\ub85c \ucd08\uae30\ud654\ud574\uc11c \uacb0\uacfc\ub97c \ubcf4\uc5ec\uc8fc\ub3c4\ub85d main()\uc744 \uc791\uc131\ud55c\ub2e4. \uc774\uc81c \ucef4\ud30c\uc77c\ud558\uace0 \uc2e4\ud589\ud574\ubcf4\uc790. \uc608\uc0c1\uacfc \ub2ec\ub9ac DerivedData\uc758 loadData()\uac00 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5],"tags":[247,324,325,323],"class_list":["post-3434","post","type-post","status-publish","format-standard","hentry","category-programming","tag-c","tag-constructor","tag-destructor","tag-overriding"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":3208,"url":"https:\/\/litcoder.com\/?p=3208","url_meta":{"origin":3434,"position":0},"title":"C++ template \uc120\uc5b8\uacfc \uad6c\ud604\uc744 \uc11c\ub85c \ub2e4\ub978 \ud30c\uc77c\uc5d0 \ub098\ub20c \uc218 \uc5c6\ub2e4","author":"litcoder","date":"2023\ub144 3\uc6d4 6\uc77c","format":false,"excerpt":"\ucee4\uc2a4\ud140 Queue \ud074\ub798\uc2a4\ub97c \uc791\uc131\ud558\ub294\ub370 queue\uc758 item\uc740 \ucd94\ud6c4\uc5d0 \ubcc0\uacbd \ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \ud15c\ud50c\ub9bf\uc73c\ub85c \uc791\uc131\ud558\uace0\uc790 \ud55c\ub2e4. Queue class\ub97c header\uc5d0 \uc815\uc758\ud558\uace0 \uad6c\ud604\uc744 cpp \ud30c\uc77c\uc5d0 \uc791\uc131\ud574 \uc900\ub2e4\uc74c main \ud568\uc218\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 queue\ub97c \uc0dd\uc131\ud558\uace0 \ucef4\ud30c\uc77c\uc744 \uc2dc\ub3c4\ud55c\ub2e4. \ub2e4\uc74c\uc740 \ud574\ub2f9 template\uc744 \uc0ac\uc6a9\ud558\ub294 caller(main \ud568\uc218)\uc774\ub2e4. \/\/ \/\/ C++ template instantiation test. \/\/ \/\/ - litcoder #include <iostream> #include\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3509,"url":"https:\/\/litcoder.com\/?p=3509","url_meta":{"origin":3434,"position":1},"title":"gRPC\ub97c \uc774\uc6a9\ud55c Observer Pattern","author":"litcoder","date":"2024\ub144 10\uc6d4 14\uc77c","format":false,"excerpt":"Remote\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uae30\ub2a5\uc744 \ub9c8\uce58 local system\uc758 function call \ucc98\ub7fc \uc81c\uacf5 \ud55c\ub2e4\ub294 gRPC\uc758 \uac1c\ub150 \uc790\uccb4\ub294 1990\ub144\ub300\uc5d0\ub3c4 \uc788\uc5c8\ub358 \uac83\uc774\uae30\uc5d0 \uc0c8\ub85c\uc6b8 \uac83\uc740 \uc5c6\uc9c0\ub9cc, \uadf8 \uc704\uc5d0\uc11c \"Subject\uc758 \ubcc0\uacbd\uc774 \uc788\uc744 \ub54c subscriber\uc5d0\uac8c notify \ud574\uc8fc\ub294 Observer Pattern\uc744 \uc5b4\ub5bb\uac8c \uad6c\ud604 \ud560 \uc218 \uc788\uc744\uae4c?\"\ud558\ub294 \uc758\ubb38\uc774 \ub4e4\uc5c8\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc5d0\uc11c\ub294 gRPC\ub97c \uc774\uc6a9\ud55c observer pattern\uc758 \uc608\uc81c\ub85c server\uc5d0\uc11c \uc784\uc758\uc758 \uc8fc\uc2dd\uacfc \uadf8 \ubcc0\ub3d9\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3456,"url":"https:\/\/litcoder.com\/?p=3456","url_meta":{"origin":3434,"position":2},"title":"Union\uc744 \uc774\uc6a9\ud55c byte \ub2e8\uc704 \uc811\uadfc","author":"litcoder","date":"2024\ub144 10\uc6d4 8\uc77c","format":false,"excerpt":"Big-endian\uc73c\ub85c \uc8fc\uc5b4\uc9c4 byte\ub4e4\uc744 little-endian\uc73c\ub85c \ubcc0\ud658\ud574\uc57c \ud558\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. Byte\ub4e4\uc758 order\ub97c \uac70\uafb8\ub85c \ub9cc\ub4dc\ub294 \uac83\uc740 \uc5b4\ub835\uc9c0 \uc54a\uc9c0\ub9cc \uadf8\ub7ec\uae30 \uc704\ud574\uc11c\ub294 byte pointer\uac00 \uac00\ub9ac\ud0a4\ub294 element\ub4e4\uc744 1 byte \ub2e8\uc704\ub85c \uc811\uadfc\ud574\uc57c \ud55c\ub2e4. 1 byte\uc529 \ub4a4\uc9d1\uc740 \ub2e4\uc74c\uc5d0\ub294 \ubcc0\ud658\ub41c array\ub97c \uc6d0\ud558\ub294 \ud06c\uae30\uc758 \ud0c0\uc785\uc73c\ub85c \uc77d\ub3c4\ub85d type casting\uc744 \ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. Union\uc744 \uc774\uc6a9\ud558\uba74 \ucf54\ub4dc\ub97c \ubabb\uc0dd\uae30\uac8c \ub9cc\ub4dc\ub294 pointer \uc9c1\uc811 \uc5f0\uc0b0\uc774\ub098 type casting\uc744\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2615,"url":"https:\/\/litcoder.com\/?p=2615","url_meta":{"origin":3434,"position":3},"title":"GDB\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\uc758 \uc2e4\uc81c \ud0c0\uc785 \ud45c\uc2dc\ud558\uae30","author":"litcoder","date":"2020\ub144 11\uc6d4 21\uc77c","format":false,"excerpt":"Base class\ub85c \ubd80\ud130 \uc0c1\uc18d \ubc1b\uc740 Derived class\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c Base class \ud3ec\uc778\ud130\uc5d0 \ub123\uc73c\uba74 GDB\uc5d0\uc11c \ud0c0\uc785\uc774 \uc81c\ub300\ub85c \ud45c\uc2dc\ub418\uc9c0 \uc54a\ub294\ub2e4. \uc774 \ub54c\ub294 'set print object on'\uc744 \uc124\uc815\ud574\uc11c GDB\uc758 ptype <var> \uba85\ub839 \uacb0\uacfc\uc5d0 \ud574\ub2f9 \uc778\uc2a4\ud134\uc2a4\uc758 \uc2e4\uc81c \ud0c0\uc785\uc774 \ud568\uaed8 \ud45c\uc2dc \ub418\ub3c4\ub85d \ud560 \uc218 \uc788\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\uac00 \uc788\ub2e4\uace0 \ud560 \ub54c #include <iostream> using\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1606,"url":"https:\/\/litcoder.com\/?p=1606","url_meta":{"origin":3434,"position":4},"title":"Heap tree \ub9cc\ub4e4\uae30","author":"litcoder","date":"2017\ub144 7\uc6d4 2\uc77c","format":false,"excerpt":"Heap tree\ub294 \uc644\uc804\uc774\uc9c4\ud2b8\ub9ac \ud615\ud0dc\ub85c \ubaa8\ub4e0 \ubd80\ubaa8 \ub178\ub4dc\uc758 \uac12\uc774 \uc790\uc2dd \ub178\ub4dc \ubcf4\ub2e4 \ud06c\uac70\ub098 (max heap) \ubaa8\ub4e0 \ubd80\ubaa8 \ub178\ub4dc\uc758 \uac12\uc774 \uc790\uc2dd \ub178\ub4dc \ubcf4\ub2e4 \uc791\uc740 (min heap) tree\ub97c \ub9d0\ud55c\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 max heap tree\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf8\ub2e4. Heap tree\ub97c \uc0dd\uc131\ud558\ub294 buildHeapTree()\uc774 \ub3d9\uc791\ud558\ub294 \uc808\ucc28\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4. N\uc740 \uc6d0\uc18c\uc758 \uac2f\uc218. \ubd80\ubaa8_\ub178\ub4dc := \uc18c\uc22b\uc810_\ubc84\ub9bc(N \/ 2)\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2017\/05\/heaptreeEX_build_heap_subtreesE_2.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2017\/05\/heaptreeEX_build_heap_subtreesE_2.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2017\/05\/heaptreeEX_build_heap_subtreesE_2.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2017\/05\/heaptreeEX_build_heap_subtreesE_2.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2654,"url":"https:\/\/litcoder.com\/?p=2654","url_meta":{"origin":3434,"position":5},"title":"Linux\uc5d0\uc11c \uba54\ubaa8\ub9ac \ud3ec\uc778\ud130\uc758 \uc720\ud6a8\uc131 \uac80\uc99d","author":"litcoder","date":"2021\ub144 1\uc6d4 28\uc77c","format":false,"excerpt":"Windows\uc5d0\uc11c\uc640 \ub2ec\ub9ac Linux\ud658\uacbd\uc5d0\uc11c\ub294 \ub531\ud788 \ud3ec\uc778\ud130\uc758 \uc720\ud6a8\uc131\uc744 \uac80\uc99d\ud560 \uc218 \uc788\ub294 system call\uc774 \uc5c6\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc740 Linux\ud658\uacbd\uc5d0\uc11c \uc774\uc640 \uc720\uc0ac\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud574 \"\uc815\ubcf4\uc758 \ubc14\ub2e4\"\uc5d0\uc11c \ucc3e\uc740 \ub0b4\uc6a9\ub4e4\uc744 \uc815\ub9ac\ud574 \ub454 \uac83\uc774\ub2e4. 1. _etext\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 \uccab\ubc88\uc9f8 \ubc29\ubc95\uc740 Define and use a pointer validation function \uc774\ub77c\ub294 \uc704\ud0a4\ubb38\uc11c\uc5d0\uc11c \uac00\uc838\uc628 \uac83\uc778\ub370 \ucef4\ud30c\uc77c\ub7ec\uac00 \uc0dd\uc131\ud558\ub294 text \uc601\uc5ed\uc758 \uc2dc\uc791\uc810\uc744 \uc774\uc6a9\ud574\uc11c\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3434"}],"version-history":[{"count":13,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3434\/revisions"}],"predecessor-version":[{"id":3454,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3434\/revisions\/3454"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}