2

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

无法分配给 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();
}
4

1 回答 1

7

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

fixed (byte* ptr = &database[0]) {
    byte* dbPtr = ptr;

    ptr++;   // CS1656, ptr is read-only.
    dbPtr++; // Valid.
}
于 2013-05-08T15:11:30.230 回答