"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > مكدس مقابل كومة في C ++: متى يجب أن أستخدم كل منها؟

مكدس مقابل كومة في C ++: متى يجب أن أستخدم كل منها؟

نشر في 2025-03-23
تصفح:488

Stack vs. Heap in C  : When Should I Use Each?

عند تحديد مكان تخزين المتغيرات ، يجب على المرء أن يقرر بين المكدس والكومة. يكمن الاختلاف الرئيسي في عمر المتغيرات. يتم تدمير هذه المتغيرات تلقائيًا عند إرجاع الوظيفة. قصاصة التعليمات البرمجية التالية:

class thingy ؛ شيء* foo () { int a ؛ // stack-alocated integer شيء ب ؛ // stack-alocated object Thingy *pointertob = & b ؛ // مؤشر إلى كائن مكدس مخصص thingy *pointertoc = new thingy () ؛ // كائن Thingy Thingy Heap- // آمن: Thingy allocated thingy تفوق foo () إرجاع pointertoc ؛ // غير آمن: سيتم تدمير stack-alocated thingy عند عودة Foo () إرجاع pointertob. }

في هذا المثال:

foo (). آلة كامنة. "كومة" و "مكدس" هي اختراعات برمجيات ، وذاكرة الكمبيوتر هي ببساطة مجموعة من العناوين. من خلال فحص مفاهيم مثل مكدس الاتصال واتفاقية الاتصال ، يمكن للمرء أن يدرك كيفية تنفيذ الجهاز وظائف ويدير الذاكرة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3