2013-03-08 104 views
3

我想在C#.Net中存儲字符串對象到char *,我該如何實現?指定字符串指向字符指針

我的功能是

xyz(char *c) 
{ 
} 

我想這個字符串作爲參數傳遞給這個函數:

string s = "Hello" 

我使用不安全的代碼在C#。

+0

不需要使用不安全,如果你顯示你的代碼會有幫助。我不明白你爲什麼不這樣做。 – 2013-03-10 21:56:20

回答

0

字符串將被視爲數組,並且char *將指向字符串的第一個索引,因此您可以調用您的函數爲 xyz(your string); 我想它應該工作

2
string s = "Hello"; 
fixed (char* ptr = s) { 
    xyz(ptr); 
} 

注意,你真的不應該這個指針(在一個字段等等),作爲地址只會固定fixed塊的持續時間。不過,你可以在xyz以內使用它。

只是...很好;變異string s很危險。

另外:如意見中指出:xyz(ptr, s.Length)將強烈建議。

+0

他需要傳遞字符串的長度嗎? – Romoku 2013-03-08 13:31:45

+0

@Romoku當然,如果他們不想讓它爆炸:但是'xyz'沒有這個參數。讓我們希望他們添加一個:) – 2013-03-08 13:32:21

+0

感謝您的解決方案。 – user2148535 2013-03-10 21:26:08