使用 Rust、C++ 和 C 中經過驗證的記憶體安全模式編寫無當機的安全程式碼。透過 RAII、所有權模型和智慧指標防止記憶體洩漏、釋放後使用和緩衝區溢位。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“memory-safety-patterns”。 How do I prevent memory leaks when opening files in C++?
预期结果:
使用 RAII 搭配智慧檔案包裝類別或 std::fstream。當物件被銷毀時,檔案會自動關閉,即使發生例外也不例外。範例:std::fstream file("data.txt"); - 解構子會自動處理清理。
正在使用“memory-safety-patterns”。 What is the difference between Box, Rc, and Arc in Rust?
预期结果:
Box<T> 用於單一所有權的堆疊配置。Rc<T> 用於共享所有權(單一執行緒)- 在 clone 時遞增參考計數。Arc<T> 用於跨執行緒的原子共享所有權 - 執行緒安全的參考計數。
正在使用“memory-safety-patterns”。 How do I handle bounds checking safely?
预期结果:
在 C++ 中,使用 std::vector::at() 會拋出 std::out_of_range,或使用 std::span 進行陣列檢視。在 Rust 中,使用 [] 索引在超出邊界時會 panic,而 .get() 會返回 Option 以便安全處理。偏好使用迭代器來避免手動邊界檢查。
安全审计
安全All 56 static findings are false positives. The skill contains only documentation and code examples for memory safety patterns. Thread spawning (thread::spawn) was misidentified as process spawning. Markdown backticks for code formatting were misidentified as shell execution. Documentation URLs and debugging tool references are legitimate educational content.
质量评分
你能构建什么
系統程式設計
編寫不存在記憶體損壞漏洞的作業系統、驅動程式或嵌入式軟體。
安全關鍵應用程式
建構記憶體安全是必需條件的應用程式:密碼學、網路服務、檔案處理。
舊有程式碼現代化
在重構 C/C++ 程式碼庫時套用記憶體安全模式,以減少錯誤並提高可靠性。
试试这些提示
顯示如何在 C++ 中為檔案控制代碼類別實作 RAII 模式。包含適當的複製/移動語義,並確保當物件超出範圍時檔案會自動關閉。
解釋 Rust 所有權如何防止釋放後使用錯誤。顯示一個包含參考的結構體範例,包括生命週期註釋以及何時使用 Box、Rc 和 Arc。
撰寫一個 C 函數,開啟檔案、配置記憶體並處理資料。使用 goto-cleanup 模式確保在發生錯誤時所有資源都被正確釋放。
分別使用 atomics 和互斥鎖在 C++ 中,以及使用 Arc 和 Mutex 在 Rust 中實作執行緒安全的計數器。顯示每種語言如何防止資料競爭。
最佳实践
- 優先使用 RAII 和智慧指標而非手動記憶體管理,以確保自動清理
- 在 Rust 中使用借用檢查器而非對抗它 - 它能防止真實錯誤
- 在開發期間執行 AddressSanitizer 和 Valgrind 以盡早發現記憶體問題
避免
- 在 C++ 中使用原始指標而非智慧指標 - 導致記憶體洩漏和懸指標
- 忽略編譯器關於懸參考的警告 - 它們表示真實錯誤
- 在 Rust 中使用 unsafe 區塊卻未記錄原因且未與安全程式碼隔離