اكتب كودًا خاليًا من الأعطال وآمنًا باستخدام أنماط أمان الذاكرة المثبتة عبر Rust وC++ وC. يمنع التسريبات والاستخدام بعد التحرير وتجاوز حدود المخزن المؤقت باستخدام RAII ونماذج الملكية والمؤشرات الذكية.
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「memory-safety-patterns」。 كيف أمنع تسريبات الذاكرة عند فتح الملفات في C++؟
預期結果:
Use RAII with a smart file wrapper class or std::fstream. The file automatically closes when the object is destroyed, even if an exception occurs. Example: std::fstream file("data.txt"); - destructor handles cleanup automatically.
正在使用「memory-safety-patterns」。 ما الفرق بين Box وRc وArc في Rust؟
預期結果:
Box<T> for single ownership with heap allocation. Rc<T> for shared ownership (single-threaded) - increments reference count on clone. Arc<T> for atomic shared ownership across threads - thread-safe reference counting.
正在使用「memory-safety-patterns」。 كيف أتعامل مع التحقق من الحدود بأمان؟
預期結果:
In C++, use std::vector::at() which throws std::out_of_range, or std::span for array views. In Rust, indexing with [] panics on out-of-bounds, while .get() returns Option for safe handling. Prefer iterators to avoid manual bounds checking.
安全審計
安全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++ لتقليل الأخطاء وتحسين الموثوقية.
試試這些提示
أرني كيفية تنفيذ نمط RAII في C++ لفئة مقبض الملف. يتضمن ذلك دلالات النسخ/النقل المناسبة والتأكد من إغلاق الملف تلقائيًا عندما يخرج الكائن من النطاق.
اشرح كيف تمنع ملكية Rust أخطاء الاستخدام بعد التحرير. أظهر مثالًا مع هيكل يحتوي على مرجع بما في ذلك تعريفات العمر ومتى تستخدم Box وRc وArc.
اكتب دالة C تفتح ملفًا وتخصص ذاكرة وتعالج البيانات. استخدم نمط goto-cleanup للتأكد من تحرير جميع الموارد في حالة الخطأ.
نفذ عدادًا آمنًا للخيوط في C++ باستخدام الذرات وmutex وفي Rust باستخدام Arc وMutex. أظهر كيف يمنع كل لغة سباقات البيانات.
最佳實務
- تفضل RAII والمؤشرات الذكية على الإدارة اليدوية للذاكرة لضمان التنظيف التلقائي
- استخدم مدقق الاستعارة في Rust بدلاً من محاربته - يمنع الأخطاء الحقيقية
- قم بتشغيل AddressSanitizer وValgrind أثناء التطوير لاكتشاف مشاكل الذاكرة مبكرًا
避免
- استخدام المؤشرات الأولية في C++ بدلاً من المؤشرات الذكية - يؤدي إلى التسريبات والمؤشرات المعلقة
- تجاهل تحذيرات المترجم حول المراجع المعلقة - تشير إلى أخطاء حقيقية
- استخدام كتل unsafe في Rust بدون توثيق لماذا وعزلها عن الكود الآمن