সমস্যা
সি ভাষায়, যদি আমরা অনির্সিয়ালাইজড অ্যারে ব্যবহার করি, তবে কী প্রোগ্রাম এক্সিকিউট হবে?
সমাধান
যদি আমরা যেকোনো অনির্সিয়ালাইজড অ্যারে ব্যবহার করি, কম্পাইলার কোনো কম্পাইলেশন বা এক্সিকিউশন এরর জেনারেট করবে না।
যদি একটি অ্যারে অনির্সিয়ালাইজড থাকে, তবে আপনি অপ্রত্যাশিত ফলাফল পেতে পারেন।
তাই, আমাদের সবসময় অ্যারে এলিমেন্টগুলো ডিফল্ট ভ্যালু দিয়ে ইনিশিয়ালাইজ করা উচিত।
উদাহরণ প্রোগ্রাম
নিচে অনির্সিয়ালাইজড অ্যারে অ্যাক্সেসের একটি সি প্রোগ্রাম দেওয়া হলো −
#include <stdio.h> int main(void){ int a[4]; int b[4] = {1}; int c[4] = {1,2,3,4}; int i; //for loop counter //printing all alements of all arrays printf("\nArray a:\n"); for( i=0; i<4; i++ ) printf("arr[%d]: %d\n",i,a[i]); printf("\nArray b:\n"); for( i=0; i<4; i++) printf("arr[%d]: %d\n",i,b[i]); printf("\nArray c:\n"); for( i=0; i<4; i++ ) printf("arr[%d]: %d\n",i, c[i]); return 0; }আউটপুট
উপরোক্ত প্রোগ্রাম এক্সিকিউট করলে নিচের ফলাফল আসে −
Array a: arr[0]: 4195872 arr[1]: 0 arr[2]: 4195408 arr[3]: 0 Array b: arr[0]: 1 arr[1]: 0 arr[2]: 0 arr[3]: 0 Array c: arr[0]: 1 arr[1]: 2 arr[2]: 3 arr[3]: 4
নোট
যদি আমরা অ্যারে ইনিশিয়ালাইজ না করি, ডিফল্টভাবে এটি গার্বেজ ভ্যালু প্রিন্ট করে এবং কখনো এরর দেখায় না।
অনির্সিয়ালাইজড অ্যারে অ্যাক্সেসের আরেকটি সি প্রোগ্রাম বিবেচনা করুন −
উদাহরণ
#include <stdio.h> int main(void){ int A[4]; int B[4] ; int C[4] = {1,2}; int i; //for loop counter //printing all alements of all arrays printf("\nArray a:\n"); for( i=0; i<4; i++ ) printf("arr[%d]: %d\n",i,A[i]); printf("\nArray b:\n"); for( i=0; i<4; i++) printf("arr[%d]: %d\n",i,B[i]); printf("\nArray c:\n"); for( i=0; i<4; i++ ) printf("arr[%d]: %d\n",i, C[i]); return 0; }আউটপুট
উপরোক্ত প্রোগ্রাম এক্সিকিউট করলে নিচের ফলাফল আসে −
Array a: arr[0]: 4195856 arr[1]: 0 arr[2]: 4195408 arr[3]: 0 Array b: arr[0]: -915120393 arr[1]: 32767 arr[2]: 0 arr[3]: 0 Array c: arr[0]: 1 arr[1]: 2 arr[2]: 0 arr[3]: 0