首页 文章
  • 0 votes
     answers
     views

    为什么Rust文档说即使向量在堆上,共享对向量的引用也会创建无效向量?

    以下是Rust编程语言chapter on ownership的摘录: 现在考虑以下代码片段:let v = vec![1,2,3]; 让mut v2 = v;第一行为堆栈上的矢量对象v分配内存,就像上面的x一样 . 但除此之外,它还在堆上为实际数据分配了一些内存([1,2,3]) . Rust将此堆分配的地址复制到内部指针,该指针是放置在堆栈上的向量对象的一部分(让我们将其称为数据指针) ...
  • 2 votes
     answers
     views

    Rust中的所有权跟踪:Box <T>(堆)和T(堆栈)之间的差异

    尝试使用编程语言Rust,我发现编译器能够非常准确地跟踪 field of some struct on the stack 的移动(它确切地知道移动了哪个字段) . 但是,当我将结构的一部分放入 Box (即将其放入堆中)时,编译器不再能够确定框中发生的所有事件的字段级移动 . 它将假设整个结构&quot;inside the box&quot;已经移动 . 让我们首先看一下一切都在堆栈上的例子...
  • 14 votes
     answers
     views

    Rust如何实现仅编译时指针安全性?

    我已经读过某个地方,在一个具有指针的语言中,编译器无法在编译时完全决定是否所有指针都被正确使用和/或有效(参考活动对象)由于各种原因,因为那样做基本上构成解决停止问题 . 直觉上这并不奇怪,因为在这种情况下,我们能够在编译时推断程序的运行时行为,类似于this related question中所述 . 但是,据我所知,Rust语言要求指针检查完全在编译时完成(没有与指针相关的未定义行为,至少是“...

热门问题