怎么没写哪里出错了?
这种方式的代码应该用/unsafe编译

解决方案 »

  1.   

    /unsafe 选项允许编译使用 unsafe 关键字的代码。在 Visual Studio 开发环境中设置此编译器选项 打开项目的“属性页”对话框。 
    单击“配置属性”文件夹。 
    单击“生成”属性页。 
    修改“允许不安全代码块”属性。 另外,你的代码也有问题,我的编译过了:
    using System;class point
    {
        public int x,y;
    }class Demo
    {
        //非保护方式,使用int指针
        unsafe static void Square(int* p)
        {
            *p*=*p;
        }    public static void Main()
        {
            point pt=new point();
            pt.x=8;
            pt.y=12;
            unsafe
            {
                //使用fixed语句来固定pt
                fixed(int *p=&pt.x)    //改的是这句
                {
                    Square(p);
                }
                //不再固定pt
            }
            Console.WriteLine("{0},{1}",pt.x,pt.y);
            Console.ReadLine();
        }
    }