From af889a301bd39e6edf797d5cfc7e35df5497c9ea Mon Sep 17 00:00:00 2001 From: Mohammad Shbool Date: Thu, 8 Aug 2019 02:03:29 +0300 Subject: [PATCH] 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. --- guide/arabic/c/arrays/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guide/arabic/c/arrays/index.md b/guide/arabic/c/arrays/index.md index 252a680470..b60eea3ab5 100644 --- a/guide/arabic/c/arrays/index.md +++ b/guide/arabic/c/arrays/index.md @@ -96,6 +96,9 @@ datatype name[size1][size2]...[sizeN] int arr[2][5] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; ``` +قد يتصور البعض ‘ ولكن كيف تخزن المصفوفات متعددة الأبعاد في الذاكرة ؟ جواب ذلك بسيط ‘ جميعنا نعلم ان الذاكرة هي في الحقيقة عبارة عن مجموعة كبيرة جداً من المربعات (الاماكن التخزينية) المصفوفة على شكل خط (احادي الابعاد) طويل و يتم تخزين المصفوفات متعددة الأبعاد .عن طريق ضرب الابعاد و حجز مساحة كافية تساوي ناتج الضرب لتخزين البيانات + + قد يكون من الصعب تصور صفيف ثنائي الأبعاد باستخدام البنية الموضحة أعلاه حتى يستخدم المطورون أقواسًا اختيارية متداخلة لتوضيح بنية الصفيف. هذه أيضًا طريقة صالحة لتهيئة مصفوفة ثنائية الأبعاد. ```C @@ -193,4 +196,4 @@ int b = test[89]; السبب في أن C لا يتحقق من تقييد الفهرسة بسيط: C هي لغة فعالة. تم إعداده ، بحيث يكون البرنامج الأسرع: يتواصل بشكل جيد مع الأجهزة الخ. لا يحتوي كود C المكتوب بشكل جيد على أخطاء في الفهرسة ، فلماذا تريد C أن تتحقق أثناء التشغيل؟ -* عند محاولة الوصول إلى العنصر الأخير من الصفيف. لنفترض أن طول الصفيف A يكون 4 وعند الوصول إلى العنصر الأخير كـ سيعرض A \[4\] خطأ ، نظرًا لأن الفهرسة تبدأ من 0. \ No newline at end of file +* عند محاولة الوصول إلى العنصر الأخير من الصفيف. لنفترض أن طول الصفيف A يكون 4 وعند الوصول إلى العنصر الأخير كـ سيعرض A \[4\] خطأ ، نظرًا لأن الفهرسة تبدأ من 0.