Added an understanding of arrays in memory. (#26148)

In the paragraph I've written, I briefly explained how the compiler handles the multi-dimensional array memory allocation, like how it actually isn't stored as a multi-dimensional block, but rather a long one-dimensional line.
This commit is contained in:
Mohammad Shbool
2019-08-08 02:03:29 +03:00
committed by Randell Dawson
parent e1371f7656
commit af889a301b

View File

@ -96,6 +96,9 @@ datatype name[size1][size2]...[sizeN]
int arr[2][5] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int arr[2][5] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
``` ```
قد يتصور البعض ولكن كيف تخزن المصفوفات متعددة الأبعاد في الذاكرة ؟ جواب ذلك بسيط جميعنا نعلم ان الذاكرة هي في الحقيقة عبارة عن مجموعة كبيرة جداً من المربعات (الاماكن التخزينية) المصفوفة على شكل خط (احادي الابعاد) طويل و يتم تخزين المصفوفات متعددة الأبعاد .عن طريق ضرب الابعاد و حجز مساحة كافية تساوي ناتج الضرب لتخزين البيانات
قد يكون من الصعب تصور صفيف ثنائي الأبعاد باستخدام البنية الموضحة أعلاه حتى يستخدم المطورون أقواسًا اختيارية متداخلة لتوضيح بنية الصفيف. هذه أيضًا طريقة صالحة لتهيئة مصفوفة ثنائية الأبعاد. قد يكون من الصعب تصور صفيف ثنائي الأبعاد باستخدام البنية الموضحة أعلاه حتى يستخدم المطورون أقواسًا اختيارية متداخلة لتوضيح بنية الصفيف. هذه أيضًا طريقة صالحة لتهيئة مصفوفة ثنائية الأبعاد.
```C ```C
@ -193,4 +196,4 @@ int b = test[89];
السبب في أن C لا يتحقق من تقييد الفهرسة بسيط: C هي لغة فعالة. تم إعداده ، بحيث يكون البرنامج الأسرع: يتواصل بشكل جيد مع الأجهزة الخ. لا يحتوي كود C المكتوب بشكل جيد على أخطاء في الفهرسة ، فلماذا تريد C أن تتحقق أثناء التشغيل؟ السبب في أن C لا يتحقق من تقييد الفهرسة بسيط: C هي لغة فعالة. تم إعداده ، بحيث يكون البرنامج الأسرع: يتواصل بشكل جيد مع الأجهزة الخ. لا يحتوي كود C المكتوب بشكل جيد على أخطاء في الفهرسة ، فلماذا تريد C أن تتحقق أثناء التشغيل؟
* عند محاولة الوصول إلى العنصر الأخير من الصفيف. لنفترض أن طول الصفيف A يكون 4 وعند الوصول إلى العنصر الأخير كـ سيعرض A \[4\] خطأ ، نظرًا لأن الفهرسة تبدأ من 0. * عند محاولة الوصول إلى العنصر الأخير من الصفيف. لنفترض أن طول الصفيف A يكون 4 وعند الوصول إلى العنصر الأخير كـ سيعرض A \[4\] خطأ ، نظرًا لأن الفهرسة تبدأ من 0.