تعریف و مقداردهی آرایه 2D
آرایههای دو بعدی در زبان C
آرایههای دو بعدی (2D Arrays) از پرکاربردترین ساختارهای داده در برنامهنویسی هستند که برای ذخیره اطلاعات ماتریسی یا جدولی استفاده میشوند. این آرایهها در واقع آرایهای از آرایهها هستند که به صورت سطر و ستون سازماندهی میشوند.
در زبان C، آرایههای دو بعدی به صورت پیوسته در حافظه ذخیره میشوند و دسترسی به عناصر از طریق دو اندیس (سطر و ستون) انجام میگیرد.
روشهای تعریف و مقداردهی
سه روش اصلی برای تعریف و مقداردهی آرایههای دو بعدی وجود دارد:
- مقداردهی مستقیم: تعریف آرایه همراه با مقادیر اولیه
- مقداردهی حلقهای: استفاده از حلقههای تو در تو
- مقداردهی پویا: تخصیص حافظه پویا با توابع malloc/calloc
روش | مثال | کاربرد |
---|---|---|
مستقیم | int matrix[2][3] = {{1,2,3},{4,5,6}}; | دادههای ثابت و از پیش مشخص |
حلقهای | for(i=0;i<2;i++) for(j=0;j<3;j++) matrix[i][j] = i+j; | الگوهای محاسباتی |
پویا | int **matrix = malloc(2*sizeof(int*)); | سایز متغیر در زمان اجرا |
مثال عملی آرایه دو بعدی
در این مثال یک آرایه 3x2 تعریف و با مقادیر اولیه پر میشود:
int matrix[3][2] = {
{10, 20},
{30, 40},
{50, 60}
};
{10, 20},
{30, 40},
{50, 60}
};
برای یادگیری عمیقتر درباره آرایههای چندبعدی در C میتوانید اینجا را انتخاب کنید.
نکات کلیدی کار با آرایههای دو بعدی
- اندیسدهی همیشه از 0 شروع میشود (مثل تمام آرایههای C)
- حافظه به صورت سطری (row-major) تخصیص داده میشود
- مقداردهی جزئی ممکن است و عناصر مقداردهی نشده به صورت خودکار صفر میشوند
- برای آرایههای بزرگ بهتر است از تخصیص پویا استفاده شود
توجه: هنگام کار با آرایههای دو بعدی به عنوان پارامتر تابع، باید بعد ستون را مشخص کنید (مثلاً void func(int arr[][4])) زیرا کامپایلر برای محاسبه آدرس حافظه به این اطلاعات نیاز دارد.