You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中&'static str的内存占用(字节数)是多少?

Rust中&'static str的内存占用大小

你的推断完全正确:&'static str的内存大小确实是2倍usize的字节数。

为什么是2*usize?

&'static str属于Rust中的「胖指针」,它包含两个核心信息:

  • 一个usize大小的指针,指向字符串在内存中的起始地址;
  • 另一个usize大小的数值,记录字符串的长度(字节数)。

所以它的总大小是两个usize相加,也就是2 * size_of::<usize>()。

结合你的示例代码验证

我们拆解你定义的Triple类型:

  • &'static str:占2*usize;
  • 每个BinaryTree<&'static str>:因为枚举的最大变体是NonEmpty(Box<TreeNode<T>>),而Box是瘦指针(仅占usize),Rust会对空变体Empty做优化,所以整个枚举的大小等于usize;
  • 两个BinaryTree<&'static str>加起来就是2*usize。

总大小:2*usize + 2*usize =4*usize,正好和代码中的断言assert_eq!(size_of::<Triple>(), 4 * word);匹配,这也反过来验证了&'static str的大小。

内容的提问来源于stack exchange,提问作者Anup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:20:26