{"id":5636,"date":"2022-06-24T18:04:07","date_gmt":"2022-06-24T09:04:07","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5636"},"modified":"2022-06-24T18:22:51","modified_gmt":"2022-06-24T09:22:51","slug":"rust-%ec%9a%94%ec%95%bd%eb%a9%94%eb%aa%a8%eb%a6%ac-%ea%b4%80%eb%a6%ac","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5636","title":{"rendered":"Rust \uc694\uc57d(\uba54\ubaa8\ub9ac \uad00\ub9ac)"},"content":{"rendered":"<h1>Rust \uc694\uc57d(\uba54\ubaa8\ub9ac \uad00\ub9ac)<\/h1>\n<p>Rust \ub294 \uaf64 \ub3c5\ud2b9\ud55c \uba54\ubaa8\ub9ac \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc744 \uac00\uc9c0\uace0 \uc788\ub2e4.<\/p>\n<h2>\uc18c\uc720\uad8c<\/h2>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5329\">\uc18c\uc720\uad8c<\/a> \ucc38\uc870<\/p>\n<h2>\uba54\ubaa8\ub9ac \ud560\ub2f9<\/h2>\n<pre><code class=\"language-rust\">\/\/\/ A macro similar to `vec![$elem; $size]` which returns a boxed array.\n\/\/\/\n\/\/\/ ```rustc\n\/\/\/     let _: Box&lt;[u8; 1024]&gt; = box_array![0; 1024];\n\/\/\/ ```\nmacro_rules! box_array {\n    ($val:expr ; $len:expr) =&gt; {{\n        \/\/ Use a generic function so that the pointer cast remains type-safe\n        fn vec_to_boxed_array&lt;T&gt;(vec: Vec&lt;T&gt;) -&gt; Box&lt;[T; $len]&gt; {\n            let boxed_slice = vec.into_boxed_slice();\n\n            let ptr = ::std::boxed::Box::into_raw(boxed_slice) as *mut [T; $len];\n\n            unsafe { Box::from_raw(ptr) }\n        }\n\n        vec_to_boxed_array(vec![$val; $len])\n    }};\n}\n\nfn main() {\n    const LEN: usize = 10_000_000;\n    let _huge_heap_array: Box&lt;[u8; LEN]&gt; = box_array![0; LEN];\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Rust \uc694\uc57d(\uba54\ubaa8\ub9ac \uad00\ub9ac) Rust \ub294 \uaf64 \ub3c5\ud2b9\ud55c \uba54\ubaa8\ub9ac \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc744 \uac00\uc9c0\uace0 \uc788\ub2e4. \uc18c\uc720\uad8c \uc18c\uc720\uad8c \ucc38\uc870 \uba54\ubaa8\ub9ac \ud560\ub2f9 \/\/\/ A macro similar to `vec![$elem; $size]` which returns a boxed array. \/\/\/ \/\/\/ &#8220;`rustc \/\/\/ let _: Box&lt;[u8; 1024]&gt; = box_array![0; 1024]; \/\/\/ &#8220;` macro_rules! box_array { ($val:expr ; $len:expr) =&gt; {{ \/\/ Use a generic function\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5636\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[],"class_list":["post-5636","post","type-post","status-publish","format-standard","hentry","category-rust-language"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5636"}],"version-history":[{"count":2,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5636\/revisions"}],"predecessor-version":[{"id":5638,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5636\/revisions\/5638"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}