#heap #array

no-std heap_arr

[T; N] 直接在堆上

3个版本 (破坏性更新)

0.3.0 2023年11月22日
0.2.0 2023年11月22日
0.1.0 2023年11月22日

#249 in 无标准库

MIT 许可证

6KB
55 代码行

堆数组 (heap_arr)

Heap Array包是一个轻量级的 #![no_std] 库,旨在简化在堆上直接构建数组的过程。

该库提供的函数可以创建初始化和未初始化的数组。

原因

在某些情况下,例如尝试使用 Box::new([0_u8; 1_000_000_000]) 创建大型数组时,Rust默认会在堆上创建数组,然后再将其移动到栈上。这种方法对于大型数组来说是一个挑战,因为它可能导致栈溢出。虽然在 release 模式下,Rust通过直接在堆上分配数组来优化这个过程,但在 debug 模式下,频繁重新编译测试时,这种优化并不可行。

Heap Array包通过提供在堆上直接创建数组的机制来解决这些挑战,为栈限制或调试需求等场景提供了更灵活的解决方案。

无运行时依赖