What if you could create a whole list with just one line of code instead of many?
Why Array initialization in C? - Purpose & Use Cases
Imagine you want to store a list of your favorite fruits manually by writing each one down on a piece of paper. If you have many fruits, it becomes hard to keep track and easy to make mistakes.
Writing each fruit one by one is slow and tiring. You might forget some fruits or write them in the wrong order. Changing the list means rewriting everything again.
Array initialization in C lets you create a list of items quickly and correctly in one step. You can set all your fruits at once, making your code neat and easy to manage.
char *fruits[3]; fruits[0] = "Apple"; fruits[1] = "Banana"; fruits[2] = "Cherry";
char *fruits[3] = {"Apple", "Banana", "Cherry"};
It makes creating and managing lists of data simple, fast, and less error-prone.
When programming a game, you can quickly set up all the levels' names in an array at once, instead of typing each name separately.
Manual entry is slow and error-prone.
Array initialization sets all values at once.
It keeps code clean and easy to update.
Practice
Solution
Step 1: Understand array declaration syntax
In C, arrays are declared with a type, name, and size in square brackets, e.g., int arr[3].Step 2: Check initialization format
Initialization uses curly braces with comma-separated values, e.g., {1, 2, 3}.Final Answer:
int arr[3] = {1, 2, 3}; -> Option BQuick Check:
Correct array declaration and initialization [OK]
- Missing square brackets for size
- Using parentheses instead of braces
- Assigning array without braces
Solution
Step 1: Check array size and initializer count
Array size is 3 but initializer has 4 values, which is invalid in C.Step 2: Verify other options
int nums[4] = {10, 20, 30, 40}; matches size and values, C infers size from initializer, B zero-initializes first element and rest are zero.Final Answer:
int nums[3] = {1, 2, 3, 4}; -> Option DQuick Check:
Initializer count > array size causes syntax error [OK]
- Providing more initial values than array size
- Omitting size but giving initializer with extra values
- Using wrong braces
int arr[5] = {1, 2};
printf("%d %d %d %d %d", arr[0], arr[1], arr[2], arr[3], arr[4]);Solution
Step 1: Understand partial initialization
When fewer values are given, remaining elements are set to zero automatically.Step 2: Check printed values
arr[0] = 1, arr[1] = 2, arr[2], arr[3], arr[4] = 0 each.Final Answer:
1 2 0 0 0 -> Option AQuick Check:
Partial init fills rest with zero [OK]
- Assuming uninitialized elements have garbage values
- Expecting compilation error for partial init
- Confusing array size with initializer count
int data[3];
data = {1, 2, 3};Solution
Step 1: Understand array assignment rules
In C, arrays cannot be assigned values after declaration using = and braces.Step 2: Check other options
Semicolon is present, size can be specified, braces are correct for initialization but not assignment.Final Answer:
Arrays cannot be assigned values after declaration like this. -> Option CQuick Check:
Array assignment after declaration is invalid [OK]
- Trying to assign array with braces after declaration
- Confusing array assignment with pointer assignment
- Using parentheses instead of braces
Solution
Step 1: Analyze partial initialization
int arr[6] = {10, 20}; partially initializes first two elements; rest are zero by default, so it works.Step 2: Compare with explicit zero initialization and assignment
int arr[6] = {0}; arr[0] = 10; arr[1] = 20; explicitly zeroes all elements then assigns first two, ensuring clarity and no garbage.Step 3: Evaluate best practice
int arr[6] = {0}; arr[0] = 10; arr[1] = 20; is best for clarity and safety; int arr[6] = {10, 20}; works but less explicit; int arr[6] = {10, 20, 0, 0, 0, 0}; is verbose; int arr[6]; arr[0] = 10; arr[1] = 20; leaves uninitialized elements.Final Answer:
int arr[6] = {0}; arr[0] = 10; arr[1] = 20; -> Option AQuick Check:
Explicit zero init then assign first elements [OK]
- Assuming partial init always safe without explicit zero
- Not initializing array before assignment
- Overwriting zeros with uninitialized values
Ready to prove it?
Pass the test and this pattern moves unknown
