C# 關於如何將字符串的地址賦給char*使用

因爲c#強調安全性,每次意圖將string的地址賦給指針時,系統都要報錯,原因是系統無法計算字符串的空間和地址,這裏不多bb,使用IntPtr類(using Runtime.InteropServices),就是類似於指針的東西,只不過指向非託管的內存塊。

一般對於char* ,void*這種可以直接對應IntPtr,比如在C#中,我們經常用string類型,其轉換爲IntPtr再傳給char*,void*等

例如char*與string互轉

string a = "11";       char* aChar = (char*)System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(a).ToPointer(); 

string result = Marshal.PtrToStringAnsi((IntPtr)aChar);   




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章