unsafe 相关问题

在C#或Rust中,unsafe关键字标记代码能够直接使用内存指针,绕过某些语言的安全检查。在Java中,`sun.misc.Unsafe`是一个执行低级,不安全操作的特殊类。

设计样条函子的更合理方法?

我对样条数据结构做了以下定义: #[派生(克隆,调试)] pub 结构 BSpline { 结:Vec, 控制点:Vec, /// 内部助手

回答 1 投票 0

“不安全”函数的最佳实践是什么,其中只有一小部分代码实际上在做“不安全”的事情?

在我正在开发的板条箱中,我有几个不安全的函数,由于这个答案中解释的原因,它们被标记为这样。在不安全的函数中,我可以执行不安全的操作,就像完整的

回答 2 投票 0

什么逃逸到堆中?

我有这段代码,本来应该根本不进行分配,但由于某种原因它确实进行了分配。正如基准测试所说,发生了 2 次分配/操作。 哪几行函数执行分配...

回答 1 投票 0

当已知两种类型具有完全相同的内存布局时,为什么 std::mem::transmute 不起作用?

首先我要说的是,我正在积极研究 Transmute 之外的其他选项,我只是惊讶 Transmute 在这种情况下无法编译。 我正在开发一个 Builder 派生库,

回答 1 投票 0

在 C# 中,如何手动将引用类型指向的内存移动到固定的、固定的、连续的数组或缓冲区中? [已关闭]

我需要一个内存缓冲区,用于在内存中保存实际对象,而不是引用。 我正在为我的应用程序使用 Unity 引擎。为了在 Unity 中提交绘制调用,必须提供一个网格对象...

回答 1 投票 0

取消引用 *const Mutex 恐慌

我目前正在研究 FFI 库的安全绑定,这是我遇到的问题的最小实现。 fn test_weird_thing() { 使用 std::sync::Mutex; ...

回答 1 投票 0

如何将 u8 缓冲区转换为 Rust 中的结构体?

我有一个未知大小的字节缓冲区,我想创建一个指向缓冲区开头的内存的本地结构变量。按照我在 C 中所做的,我尝试了很多不同的薄...

回答 4 投票 0

为什么将 `&mut &mut i32` 转换为 `*mut *mut i32` 无效

我可以像这样在 Rust 中将 &mut i32 转换为 *mut i32 fn 主() { 令 mut x = 1; 让 mut xref = &mut x; 不安全{ 让 xref_ptr = xref as *mut i32; *xref_ptr = 2; } ...

回答 2 投票 0

在自引用结构中使用 'static 来引用 Box 可以吗?

给出下面的代码片段: 使用 std::{io::BufWriter, pin::Pin}; pub 结构自引用 { pub writer: BufWriter<&'static mut [u8]>, // 从缓冲区借用 酒吧缓冲区:Pin&l...

回答 1 投票 0

UnsafeCell 如何通知 rustc 选择退出基于别名的优化?

我正在阅读 rust std 文档并遇到了这一行: UnsafeCell 选择退出 &T 的不变性保证:共享引用 &UnsafeCell 可能指向

回答 1 投票 0

为什么 Rust 标准库有这么多不安全代码?

我在查看标准库中的 String ,发现有很多像这样的不安全代码: #[排队] #[稳定(功能=“rust1”,因为=“1.0.0”)] 酒吧 fn 删除...

回答 1 投票 0

我可以创建一个“不安全的关闭”吗?

我有一些代码,简化后如下所示: fn foo() -> Vec { 不安全{ unsafe_iterator().map(|n|wrap_element(n)).collect() } } 迭代器返回的项

回答 1 投票 0

使用“static”保存对同一结构体属性的引用是否安全?

在没有不安全块的情况下不可能解决的棘手问题是在结构中保存对此结构的其他属性所拥有的内容的引用。 然而,对于不安全的块,这很容易,一个......

回答 1 投票 0

为什么这个不安全的块会返回单位类型?

我不太明白不安全和作业如何协同工作。下面的代码给了我一些错误: fn num() -> u64 { 1; } fn 测试() -> u64 { 让 x = 不安全 { num();...

回答 1 投票 0

在构造函数中使用不安全和指针时,这种奇怪的行为是什么?

我遇到了一个奇怪的问题,程序的成功或失败取决于是否将我的不安全块放入构造函数中。不确定这是一个错误还是我只是在后者中很幸运......

回答 1 投票 0

Delphi:使用 [weak] 属性的对象聚合和内存泄漏

我想通过使用聚合来构建一个包含多个子对象的类 TParent。有些对象是独立的,而有些对象也可能依赖于其他子对象。所有的孩子们

回答 1 投票 0

出于学习目的在没有 Bitmap 类的情况下读取 BMP 文件,LockBits 问题(带有不安全块的 C#)

我有这样的Windows Forms项目,它读取24位RGB BMP文件。除了打印位图形成的方法之外,一切都工作正常。有一行带注释的代码,它完全取代了...

回答 1 投票 0

如何通过原始指针修改闭包内的结构体字段?

我有以下从 C 代码调用的线程过程的代码。 context 是指向堆上结构的指针 (Box::into_raw(Box::new(...))。闭包被传递给 add_callback 函数并存储在 vec...

回答 1 投票 0

将 `Arc<dyn Trait>` 向上转换为 `Arc<dyn Any>`?

假设我有一个Asset类型的trait对象,它存储在Arc中,我想将其转换为Arc以方便以后向下转型。 有什么安全的方法可以做到这一点吗?我有...

回答 1 投票 0

这个不安全的 Rust 代码有什么问题,所以它可以在 Windows 上运行,但不能在 Ubuntu 上运行?

您好,我知道代码可以完全编写,没有任何不安全的代码,但我正在做一项研究并学习“幕后”的工作原理。 回到正题,我写了一篇...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.