我需要将一些代码从FreePascal移植到C.我是一名专业的C开发人员但对Pascal一无所知。大多数代码都可以轻松移植,但是一行代表让我很头疼。究竟应该做什么:
New(newBack);
curBackPtr^ := newBack;
curBackPtr := @(newBack^.next);
令我感到困惑的是,newBack
已分配给curBackPtr
,并且newBack.next
被分配到curBackPtr
而curBackPtr
没有{{1}}访问。那么第一个任务是不是多余的,可以安全地删除?或者我在这里遗漏了什么?
答案 0 :(得分:8)
答案 1 :(得分:0)
New(newBack);
为newBack类型分配内存并将指针存储在newBack中。
curBackPtr ^:= newBack;
将newBack指针指向curBackPtr指向的内容。
curBackPtr:= @(newBack ^ .next);
指定curBackPtr指向newBack ^ .next,即指向下一个指针本身,而不是指向它指向的指针。