gpt4 book ai didi

arrays - 在 Nim 中创建对数组的引用

转载 作者:行者123 更新时间:2023-12-02 02:18:10 27 4
gpt4 key购买 nike

var b: array[5, int]

type
ArrRef = ref array[5, int]

var c : ArrRef
echo repr(c) # nil
c = addr b # doesn't compile, says type is Array constructor, expected reference

在 Nim 中,如何传递对数组的引用而不是按值传递?请参阅上面的代码了解我到目前为止所拥有的内容。

最佳答案

在 Nim 中,ref 位于堆上,必须使用 new 进行分配。您不能只使用堆栈数组作为ref,因为那是不安全的:当数组从堆栈中消失时,ref 指向一些错误的内存。相反,您有两种选择:您可以使用不安全的 ptr 来代替。除了 ref 之外,它们不会被垃圾回收,并且可用于不安全的东西。或者,您可以直接将 b 设为 ref 数组

关于arrays - 在 Nim 中创建对数组的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30584140/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com