在固定块内增加指针禁止,似乎它应该工作

本文关键字:工作 禁止 指针 增加 | 更新日期: 2023-09-27 18:12:34

尝试增加指针时出现错误。

不能赋值给ptr,因为它是一个固定变量CS1656另一个指针ptruc

也会出现同样的错误
unsafe void organize_data()
{
    fixed(byte* ptr =  &database[0])
    {
        fixed(byte* ptruc =  &dtbaseuc[0])
        {
            strcnt=1;
            linestrts[0]=0;
            for(int i=0;i<filelen;i++)
            {
                if(*ptr > 96 && *ptr < 123)*ptruc=(byte)((int)*ptr-(int)32);
                    if(*ptr ==13)
                    {
                        linestrts[strcnt]=i+1;
                        strcnt++;
                    }
                ptr++;
                ptruc++;
            }
        }
    }
    textBox2.Text=strcnt.ToString();
}

在固定块内增加指针禁止,似乎它应该工作

fixed块中声明的变量是只读的,不能赋值。您必须复制指针,然后增加副本的值。

fixed (byte* ptr = &database[0]) {
    byte* dbPtr = ptr;
    ptr++;   // CS1656, ptr is read-only.
    dbPtr++; // Valid.
}