Comprehensive Rust(繁体中文)malloc 和 free 手動管理堆積。常見的錯誤包括忘記呼叫 free、針對 同一指標多次呼叫 free,或在其指向的記憶體釋出後取消參照指標。 • C++ 提供智慧指標 (unique_ptr、shared_ptr) 等工具,可利用有關呼叫解構函式的語言保證, 確保在函式傳回時釋出記憶體。但這些工具仍很容易遭到濫用,並且會產生類似 C 語言中的那些錯 誤。 • Java、Go 和 Python 會利 • 您可以將共用指標「降級」為 Weak 指標,以便建立之後會捨棄的循環。 • Rc 的計數可確保只要有參考,內含的值就會保持有效。 • Rust 中的 Rc 就像 C++ 中的 std::shared_ptr 一樣。 • Rc::clone 的成本很低:這個做法會建立指向相同配置的指標,並增加參考計數,而不會產生深 克隆,尋找程式碼效能問題時通常可以忽略。 • make_mut 實際上會在必要時克隆內部值 std::span/&[T] 必須從一個指標和長度去手動解構並重新建構。這麼做很容易出錯, 因為每種語言各以略微不同的方式表示空切片 – std::unique_ptr 、std::shared_ptr 和/或 Box 等智慧指標均可原生支援。 使用手動繫結時,必須傳遞與 C-ABI 相容的原始指標,這可能會增加生命週期和記憶體安全風 險。 – rust::String 和 CxxString 0 码力 | 358 页 | 1.41 MB | 10 月前3
共 1 条
- 1













