回 帖 发 新 帖 刷新版面

主题:新手求救

using System;
class Point
{
    public int x, y;
}
class FixedTest
{
    //使用unsafe关键字声明非法安全方法
    unsafe static void SquarePtrParam(int* p)
    {
        *p *= *p;
    }
    public static void Main()
    {
        Point pt=new Point();
        pt.x=5;
        pt.y=6;
        unsafe //指定非安全上一文,fixed 关键字只能非安全上下文中使用
        {
            //锁定pt
            fixed(int*p=&pt.x)
            {
                SquarePtrParam(p);//把指针作为参数传递
            }
            //执行完语句块之后,pt解除锁定状态
        }
        Console.WriteLine("{0}{1}",pt.x,pt.y);
    }
}


调试时有一处出错..我都是照着书做的,,请高手指点一下怎么错了
本人自学C#[em18]

回复列表 (共4个回复)

沙发

这个是c#吗?怎么又*P指针的?我没见过unsafe,看来我还要多看书

板凳

用下面的方法编译文件
>csc filename.cs /unsafe

3 楼


二楼的能不能说详细一点呀.

4 楼

右键点击项目->Configuration Propertity->Bulid->Allow Unsafe Code Blocks设为True.

或者按照2楼的方法在命令行下编译.

我来回复

您尚未登录,请登录后再回复。点此登录或注册