لغة - كيفية تهيئة المصفوفة إلى 0 في C؟




شرح المصفوفات في c++ (2)

أحتاج إلى صفيف فارغ في C كمحرك عالمي. هل هناك أي طريقة للقيام بذلك بالإضافة إلى الكتابة

char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };

؟

https://code.i-harness.com


إذا كنت ترغب في تهيئة المصفوفة إلى قيم أخرى بخلاف 0 ، gcc :

int array[1024] = { [ 0 ... 1023 ] = -1 };

هذا هو ملحق GNU من C99 المعينة من Initializers . في دول مجلس التعاون الخليجي الأقدم ، قد تحتاج إلى استخدام -std=gnu99 لتجميع التعليمات البرمجية.


المتغيرات العالمية والمتغيرات الثابتة يتم تهيئتها تلقائيا إلى الصفر. إذا كان لديك ببساطة

char ZEROARRAY[1024];

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

char ZEROARRAY[1024] = {0};

سيقوم المجمع بتعبئة الإدخالات غير المكتوبة بأصفار. بدلا من ذلك يمكنك استخدام memset لتهيئة الصفيف عند بدء تشغيل البرنامج:

memset(ZEROARRAY, 0, 1024);

قد يكون ذلك مفيدًا إذا كنت قد غيرتها وأردت إعادة تعيينها مرة أخرى إلى جميع الأصفار.





initialization