{"id":14051,"date":"2024-03-15T08:22:32","date_gmt":"2024-03-15T08:22:32","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/"},"modified":"2025-08-06T03:02:28","modified_gmt":"2025-08-06T03:02:28","slug":"how-to-convert-intptr-to-an-array-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/","title":{"rendered":"Convert IntPtr to Array in C#"},"content":{"rendered":"<p>In C#, IntPtr cannot be directly converted to an array because IntPtr is a pointer type that represents a pointer to data of any type. To convert IntPtr to an array, you first need to determine the data type that the pointer is pointing to, and then use pointer arithmetic or methods provided by the Marshal class to copy the data into the array.<\/p>\n<p>Here is an example code that converts IntPtr to an array of int type:<\/p>\n<pre class=\"post-pre\"><code>IntPtr intPtr = <span class=\"hljs-keyword\">new<\/span> IntPtr(); <span class=\"hljs-comment\">\/\/ \u5047\u8bbe\u6709\u4e00\u4e2aIntPtr\u7c7b\u578b\u7684\u5bf9\u8c61<\/span>\r\n\r\n<span class=\"hljs-built_in\">int<\/span>[] array = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-built_in\">int<\/span>[arrayLength]; <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u4e00\u4e2aint\u7c7b\u578b\u7684\u6570\u7ec4\uff0carrayLength\u4e3a\u6570\u7ec4\u957f\u5ea6<\/span>\r\n\r\n<span class=\"hljs-keyword\">unsafe<\/span>\r\n{\r\n    <span class=\"hljs-built_in\">int<\/span>* ptr = (<span class=\"hljs-built_in\">int<\/span>*)intPtr.ToPointer(); <span class=\"hljs-comment\">\/\/ \u5c06IntPtr\u8f6c\u6362\u4e3aint\u7c7b\u578b\u7684\u6307\u9488<\/span>\r\n\r\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-built_in\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; arrayLength; i++)\r\n    {\r\n        array[i] = *(ptr + i); <span class=\"hljs-comment\">\/\/ \u901a\u8fc7\u6307\u9488\u8fd0\u7b97\u5c06\u6570\u636e\u590d\u5236\u5230\u6570\u7ec4\u4e2d<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Please note that the &#8220;unsafe&#8221; keyword is used in the above code because it involves pointer operations, requiring the use of an unsafe code block. It is also important to ensure that the data type pointed to by IntPtr matches the data type of the target array, as otherwise it could lead to data corruption or type conversion errors.<\/p>\n<p>If you are uncertain about the data type IntPtr is pointing to, you can use the methods provided by the Marshal class for conversion, such as using the Marshal.Copy method to copy the data pointed to by the pointer into an array. Please refer to MSDN documentation or other relevant resources for specific usage instructions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, IntPtr cannot be directly converted to an array because IntPtr is a pointer type that represents a pointer to data of any type. To convert IntPtr to an array, you first need to determine the data type that the pointer is pointing to, and then use pointer arithmetic or methods provided by the [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[314,9102,274,18916,328],"class_list":["post-14051","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-net","tag-array-conversion","tag-c","tag-intptr","tag-memory-management"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Convert IntPtr to Array in C# - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to safely convert IntPtr to arrays in C# using Marshal class with practical code examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Convert IntPtr to Array in C#\" \/>\n<meta property=\"og:description\" content=\"Learn how to safely convert IntPtr to arrays in C# using Marshal class with practical code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T08:22:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T03:02:28+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"Convert IntPtr to Array in C#\",\"datePublished\":\"2024-03-15T08:22:32+00:00\",\"dateModified\":\"2025-08-06T03:02:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\"},\"wordCount\":199,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\".NET\",\"array conversion\",\"c#\",\"IntPtr\",\"memory management\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\",\"name\":\"Convert IntPtr to Array in C# - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T08:22:32+00:00\",\"dateModified\":\"2025-08-06T03:02:28+00:00\",\"description\":\"Learn how to safely convert IntPtr to arrays in C# using Marshal class with practical code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Convert IntPtr to Array in C#\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Convert IntPtr to Array in C# - Blog - Silicon Cloud","description":"Learn how to safely convert IntPtr to arrays in C# using Marshal class with practical code examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/","og_locale":"en_US","og_type":"article","og_title":"Convert IntPtr to Array in C#","og_description":"Learn how to safely convert IntPtr to arrays in C# using Marshal class with practical code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T08:22:32+00:00","article_modified_time":"2025-08-06T03:02:28+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"Convert IntPtr to Array in C#","datePublished":"2024-03-15T08:22:32+00:00","dateModified":"2025-08-06T03:02:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/"},"wordCount":199,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":[".NET","array conversion","c#","IntPtr","memory management"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/","name":"Convert IntPtr to Array in C# - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T08:22:32+00:00","dateModified":"2025-08-06T03:02:28+00:00","description":"Learn how to safely convert IntPtr to arrays in C# using Marshal class with practical code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-convert-intptr-to-an-array-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Convert IntPtr to Array in C#"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14051"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14051\/revisions"}],"predecessor-version":[{"id":158066,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14051\/revisions\/158066"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}