Rust、C++、Cで実証済みのメモリ安全性パターンを使用して、クラッシュフリーで安全なコードを記述します。RAII、所有権モデル、智能ポインタを使用して、メモリリーク、use-after-free、バッファオーバーフローを防止します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「memory-safety-patterns」を使用しています。 C++でファイルを開くときにメモリリークを防ぐ方法は?
期待される結果:
RAIIと智能ファイルラッパークラスまたはstd::fstreamを使用してください。オブジェクトが破棄されると、例外が発生した場合でもファイルは自動的に閉じます。例:std::fstream file("data.txt"); - デストラクタが自動的にクリーンアップを処理します。
「memory-safety-patterns」を使用しています。 RustのBox、Rc、Arcの違いは何ですか?
期待される結果:
Box<T>はヒープ割り当てを持つ単一所有権用です。Rc<T>は共有所有権(単一スレッド)用 - cloneで参照カウントをincrementします。Arc<T>はスレッド間でのアトミック共有所有権用 - スレッドセーフな参照カウントを行います。
「memory-safety-patterns」を使用しています。 境界チェックを安全に処理する方法は?
期待される結果:
C++では、std::out_of_rangeをスローするstd::vector::at()を使用するか、配列ビューに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の所有権がuse-after-freeバグを防ぐ方法を説明してください。構造体が参照を持つ例を示し、Box、Rc、Arcのどちらを使用するかをLifetime annotation 含めて説明してください。
ファイルを開き、メモリを割り当て、データを処理するC関数を書いてください。goto-cleanupパターンを使用して、エラー時にすべてのリソースが正しく解放されることを確認してください。
C++ではアトミックスとmutexを使用し、RustではArcとMutexを使用してスレッドセーフなカウンタを実装してください。各言語がデータ競合をどう防ぐかを示してください。
ベストプラクティス
- 手動メモリ管理ではなくRAIIと智能ポインタを優先し、自動クリーンアップを確保する
- Rustではborrow checker と戦うのではなく活用する - 実際のバグを防ぐ
- 開発時にAddressSanitizerとValgrindを実行して、早期にメモリの問題を発見する
回避
- C++で智能ポインタの代わりに生ポインタを使用する - リークとダングリングポインタにつながる
- ダングリング参照に関するコンパイラの警告を無視する - 実際のバグを示している
- Rustで安全でないブロックを使用する場合は理由を文書化し、安全なコードから分離する