请参考以下代码片段。
我错在哪里了? 我期望看到“Hello World”,但我没有看到。
private void MyMethod()
{
IntPtr myVar = Marshal.AllocHGlobal(1024);
string hello = "Hello World";
Marshal.Copy(hello.ToCharArray(), 0, myVar, hello.Length);
//I don't see Hello World here. Instead, I see a memory address. WHY???
Debug.Print(myVar.ToString());
Marshal.FreeHGlobal(myVar);
}
我错在哪里了? 我期望看到“Hello World”,但我没有看到。
Marshal.StringToHGlobalUni
的文档中可以得知:"此方法会复制嵌入的空字符,并包含一个终止空字符。" 那么当你说 "显然,只有在修复缺失的空终止符时才是实用的" 时,你的意思是什么? - Kris Vandermotten