标签: fixed-statement

不安全的字符串指针语句

据我所知,根据MSDN C#fixed语句应该像:

fixed (char* p = str) ... // equivalent to p = &str[0]
Run Code Online (Sandbox Code Playgroud)

所以,为什么我不能这样做?

    const string str = "1234";
    fixed (char* c = &str[0])
    {
/// .....
    }
Run Code Online (Sandbox Code Playgroud)

str[1]作为一个例子,我怎样才能得到指针?

.net c# unsafe fixed-statement

9
推荐指数
2
解决办法
6529
查看次数

用“new”初始化的 Fix(){} 中的多个指针不起作用

当我尝试使用固定初始化一个新的 char* 数组,同时与其他事物一起进行初始化时,它不起作用。下面的代码是一个例子

fixed (char* buffer = new char[25])
{
     //This works just fine
}; 

fixed (char* origionalPhrase = phrase, char* buffer = new char[25])
{
    //This does not
}
Run Code Online (Sandbox Code Playgroud)

语法解析器将新 char[25] 强调为“无法将类型 'char[]' 隐式转换为 'char*'”。我需要将这两个变量初始化为 char* 数组。第一个变量 origionalPhrase 变量初始化得很好。MSNDN 文档指出:

fixed (byte* ps = srcarray, pd = dstarray) {...}
Run Code Online (Sandbox Code Playgroud)

将工作。

我使用了这篇MSDN 文章。

.net c# unsafe fixed-statement

2
推荐指数
1
解决办法
4127
查看次数

标签 统计

.net ×2

c# ×2

fixed-statement ×2

unsafe ×2