مالفرق بين []tableauو tableau[10] داخل الدوال ؟

  • Frix

السلام عليكم

لاحظت فيما يخص les tableau في c++ أنه دائما عندما يكـون هذا التابلو كـ Argument لدالة ما فـلا نحدد عدد خاناته مسبقا هكذا مثلا tableau[150]

بـل نتركهـا فارغة []tableau ما السبب ؟


السي لا يدعم إمرار المصفوفات كمعطيات للدوال. ما يحدث هو إختزال المصفوفة لمؤشر و إمرار مؤشر بدلا من ذلك. لذلك السطور الثلاثة المتتالية متساوية تماما:

size_t strlen(const char*);
size_t strlen(const char[]);
size_t strlen(const char[128]);

يعني ذلك أيضا أنه يجب عليك إمرار الحجم كمعطى منفصل لأن sizeof سترجع حجم المؤشر وليس المصفوفة. أو إستخدم std::vector الذي يريحك من التعامل مع هذه التفاصيل و implementation details أخرى كثيرة.

بارك الله فيك أخي الكريم وجعلها في ميزان حسناتك ..