将字符串赋值给字符指针

3

我希望将C#.Net中的字符串对象存储到char *中,我该如何实现?

我的函数是:

xyz(char *c)
{
}

我想将这个字符串作为参数传递给这个函数:
string s = "Hello"

我正在使用C#中的不安全代码。


不需要使用unsafe,如果您展示一下您的代码会很有帮助。我不明白为什么您不这样做。 - David Heffernan
2个回答

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

请注意,您不应该真正“存储”该指针(在字段等中),因为地址仅在“fixed”块的持续时间内被固定。但是,您可以在“xyz”内部很好地使用它。
只是……要友善;改变“string”非常危险。
另外:如评论中所述:“xyz(ptr,s.Length)”强烈建议使用。

他需要传入字符串的长度吗? - Dustin Kingen
@Romoku 当然,如果他们不想让它爆炸的话:但是 xyz 没有这方面的参数。希望他们能添加一个 :) - Marc Gravell

0

字符串将被视为数组,而char*将指向字符串的第一个索引,因此您可以调用您的函数如下: xyz(您的字符串); 我猜它应该可以工作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接