شرح Memory Allocation .
* السلام عليكم ورحمة الله وبركاته *
------------------
الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد :-
--------------------
# ماهو memory allocation :-
هي بكل بساطه, عملية تقوم بتخصيص مساحة "معينه" في الذاكرة ليتم استخدامها او كما قال lavanya marichamy (هو جزء من المعلومات يتخزن في الذاكرة ) .
---------------------
# الفرق بين compilation و execution :-
الcompilation : هي عملية لتحويل لغة high-level الى لغة برمجة low-level (machine-code) لينتج ملفا تنفيذيا -> (compile-time) .
الexecution : هي العملية التي تكون بعد compilation وهي تنفيذ البرنامج -> (run-time) .
> gcc test.c -o test # compilation
> ./test # execution
-----------------
# أنواع Memory allocation :-
- Static Allocation : هي مساحة من الذاكرة يتم تخصيصها (internal linkage) بعد compilation وقبل execution ولايتم تحريرها "المبرمج لايجدر عليه القلق من هذه الناحية لكن عليه أن يقلق من المساحة فالموضوع يحدث في Stack وليس Heap" (تستخدم في Stack) .
- dynamic allocation : هي مساحة في Memory Heap وليس Memory Stack يتم تخصيصها من المبرمج ويجدر عليه تحريرها "free() function" لتفادي memory leak و dynamic memory allocation لاتستطيع الوصول له الا عن طريق المؤشرات [Pointers] (تستخدم في Heap) .
-----------------
هنا نصل الى نهاية موضوعنا، أتمنى الشرح مفهوم للجميع 3>
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !