Rust:String的内存释放[复制]

问题描述 投票:-2回答:1

这个问题在这里已有答案:

在这种情况下,我是否需要手动释放内存:

let mut s = String::new();
...somecode here...
s = String::new();

并且它是擦除字符串内容的最佳方法吗?

memory memory-management rust dealloc
1个回答
0
投票

在这种简单的情况下,当我们不再需要时,Rust会自动释放内存。

如果要为s指定零长度字符串,可以使用clear函数:

s.clear();

这样可以保留字符串的当前容量(和分配)。您引用的替代方案,

s = String::new();

不这样做。根据具体情况,这两种方法都有其用途。有时,保留大量的字符串分配是浪费的(如果字符串永远不会再增长到这个大小)。

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