unsafe 相关问题

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

Rust 将 Vec<u8> 转换为不同的结构,并删除 Vec,同时拥有其他结构的所有权

我有一个从磁盘读取 Vec 的函数,我想将其解释为 ext2 超级块(这是一个打包结构)。 所以我用了: 不安全 {&*(raw_super.as_ptr() as *const Super bloc...

回答 1 投票 0

Rust 将 Vec<u8> 转换为不同的结构,并删除 Vec,同时拥有其他结构的所有权

我有一个从磁盘读取 Vec 的函数,我想将其解释为 ext2 超级块(这是一个打包结构)。 所以我用了: 不安全 {&*(raw_super.as_ptr() as *const Super bloc...

回答 1 投票 0

如何获取sun.misc.Unsafe的实例?

如何获取不安全类的实例? 我总是遇到安全异常。我列出了 OpenJDK 6 实现的代码。我想搞乱 sun.misc.Unsafe 函数

回答 3 投票 0

此 Rust 代码会导致未定义的行为吗?

到目前为止,我只用 Rust 编写了安全代码。现在我正在从头开始编写一个 DBMS,以便深入理解该语言。由于性能是这里的重中之重,所以我尝试编写大部分 c...

回答 1 投票 0

别针<&mut MaybeUninit<T>> 插入别针<&mut T>

假设 MaybeUninit<&mut T> 已初始化,如何从 Pin<&mut MaybeUninit> 安全地获取 Pin?

回答 1 投票 0

为什么 std::cell::Ref 不使用引用而不是 NonNull?

Rust 中的 std::cell::Ref 结构体定义如下: pub 结构参考<'b, T: ?Sized + 'b> { // 注意:我们使用指针而不是 `&'b T` 来避免 `noalias` 违规,因为 /...

回答 1 投票 0

为什么`std::cell::Ref`不使用引用而不是`NonNull`

Rust 中的 std::cell::Ref 结构体定义如下: pub 结构参考<'b, T: ?Sized + 'b> { // 注意:我们使用指针而不是 `&'b T` 来避免 `noalias` 违规,因为 /...

回答 1 投票 0

为什么必须将固定大小的缓冲区(数组)声明为不安全?

假设我想要一个 7 字节(或 3 或 777)的值类型。 我可以这样定义它: 公共结构 Buffer71 { 公共字节b0; 公共字节b1; 公共字节b2; 公共字节 b3;...

回答 3 投票 0

如何构造大小仅在运行时已知的 DST 结构实例?

我有一个可以以固定大小或未调整大小的方式使用的结构,其中最后一个元素是 u8 项的数组。我们可以编写以下结构体定义: 结构 MyStructImpl ...

回答 1 投票 0

C# 中的不安全代码

C# 中不安全代码有哪些限制?例如,我可以像使用 C 或 C++ 一样进行几乎任意的指针转换和算术吗?

回答 4 投票 0

不安全状态和安全状态

我了解了一些关于不安全状态和安全状态的知识。 安全状态是指不可能发生死锁,而不安全状态并不意味着已经发生死锁,而是意味着

回答 2 投票 0

是否可以让通用 Rust T 始终分配堆?

使用 std::ops::Deref; 结构测试{ 最后:&'静态str, 列表:Vec, } // 这是安全的,因为我们拥有该值并且不会修改它。 // 当 drop 时,`last` 将被 dro...

回答 1 投票 0

C# 指向具有托管字段的“ref struct”指针的安全问题。忽略警告 CS8500

考虑以下代码: 公开课 SomeClass { 公共 bool someBool; } 公共引用结构 RefStructWithManagedFields { 私人某个班级? _托管字段; ...

回答 1 投票 0

如何使用父指针创建高效的不可变树

我正在构建一个“场景图”,它是形状节点的分层数据结构(例如球体、立方体、网格等,示例代码中未显示)。一个 Shape 可以拥有零个或多个子 Shape

回答 1 投票 0

如何在Unity中使用不安全上下文

我想使用 CLR 在 Unity 的 C# 中使用 C++ 代码。 该程序在统一之外正常工作,但在引擎内部它给了我一个错误: “cs0227:不安全代码需要‘不安全’命令行

回答 3 投票 0

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

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

回答 1 投票 0

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

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

回答 2 投票 0

什么逃逸到堆中?

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

回答 1 投票 0

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

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

回答 1 投票 0

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

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

回答 1 投票 0

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