【问题标题】:C#: Pointer to doubleC#:指向双精度的指针
【发布时间】:2010-11-03 00:28:47
【问题描述】:

我有一个声明,在声明中,我想设置一个高度是一个指向双精度的指针,但得到错误消息:

错误 1 ​​指针和固定大小的缓冲区只能在不安全的情况下使用 上下文,

有人可以告诉我在 double 中声明指针类型的正确方法吗?

下面是我的声明,我将高度设置为 double (double* height) 的指针,但收到一条错误消息。

private static extern bool GetElevation(double dLat, double dLon, double* height);

【问题讨论】:

    标签: c# pointers compiler-errors


    【解决方案1】:

    你的外部声明应该是:

    private static extern bool GetElevation(double dLat, double dLon, ref double height);
    

    希望这会有所帮助!

    编辑

    这个question(和接受的答案)可能会对这个主题有所了解。它谈到了ref vs out(不确定哪个更适合您的情况)和编组。

    【讨论】:

      【解决方案2】:

      我认为你应该:

      1. 了解更多关于在 C# 中使用指针和不安全块的信息,这里有一个很好的resource
      2. 将您的函数标记为“不安全”,见下文:

      private static unsafe extern bool GetElevation(double dLat, double dLon, double* height)

      所有这些都完成后,您就可以使用 /unsafe 开关进行编译了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-27
        • 1970-01-01
        • 1970-01-01
        • 2022-12-12
        • 2011-11-30
        • 1970-01-01
        • 2018-06-23
        • 2016-12-23
        相关资源
        最近更新 更多