【问题标题】:FreePascal beginners issueFreePascal 初学者问题
【发布时间】:2012-03-24 17:38:47
【问题描述】:

我需要将一些代码从 FreePascal 移植到 C。我是一名专业的 C 开发人员,但对 Pascal 一无所知。大多数代码可以很容易地移植,但有一行代码让我很头疼。这到底应该做什么:

New(newBack); 
curBackPtr^ := newBack; 
curBackPtr := @(newBack^.next);

这里让我感到困惑的是,newBack 被分配给 curBackPtr,然后newBack.next 被分配给 curBackPtr,而 curBackPtr 却没有被访问过。那么第一次分配不是多余的并且可以安全地删除吗?还是我在这里遗漏了什么?

【问题讨论】:

  • 知道foo^ 类似于 C 中的 *foo@(foo) 类似于 C 中的 &foo 是否有帮助?

标签: pascal freepascal


【解决方案1】:

【讨论】:

  • 你的时间太多了 - 哈哈。非常好!
  • 非常感谢,我明白了:)
【解决方案2】:
New(newBack); 

为 newBack 类型分配内存并将指针存储在 newBack 中。

curBackPtr^ := newBack;

将 newBack 指针分配给 curBackPtr 指向的内容。

curBackPtr := @(newBack^.next);

将 curBackPtr 指定为指向 newBack^.next,即指向 next 指针本身,而不是指向它所指向的对象。

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 2020-11-23
    • 2015-03-16
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多