Arrays hold many values in one place. Knowing their size and limits helps avoid errors.
When you want to store a fixed number of items like scores or names.
When you need to loop through all items safely without going outside the array.
When you want to check if an index is valid before accessing an array element.
Syntax
C
/* Define an array with a fixed size */int numbers[5];
/* Access elements from 0 to size-1 */
numbers[0] = 10;
numbers[4] = 50;
/* Accessing outside bounds causes errors */// numbers[5] = 60; // WRONG! Index 5 is out of bounds
Array indexes start at 0 and go up to size-1.
Accessing outside these bounds causes undefined behavior and bugs.
Examples
An array with zero size has no elements. Accessing any index is invalid.
C
int empty_array[0];
// This array has size 0, no elements to access.
An array with one element can only be accessed at index 0.
C
int single_element[1];
single_element[0] = 100;
// Only index 0 is valid here.
Accessing index equal to the size (3) is out of bounds.
C
int fruits[3] = {10, 20, 30};
// Valid indexes: 0, 1, 2// fruits[3] is invalid and causes errors.
Sample Program
This program shows how to find the size of an array and safely access its elements using a loop.
C
#include <stdio.h>
int main() {
int scores[4] = {85, 90, 78, 92};
int size = sizeof(scores) / sizeof(scores[0]);
printf("Array size: %d\n", size);
printf("Scores: ");
for (int index = 0; index < size; index++) {
printf("%d ", scores[index]);
}
printf("\n");
// Trying to access out of bounds (commented out to avoid crash)// printf("%d", scores[4]); // Invalid accessreturn0;
}
OutputSuccess
Important Notes
Time complexity to access an element is O(1).
Always use the array size to avoid going out of bounds.
Common mistake: Accessing index equal or greater than size causes crashes or bugs.
Use loops with size checks to safely process arrays.
Summary
Arrays have a fixed size known at compile time.
Valid indexes are from 0 to size-1.
Accessing outside these bounds causes errors and must be avoided.
Practice
(1/5)
1. What is the valid range of indexes for an array declared as int arr[10]; in C?
easy
A. 0 to 9
B. 1 to 10
C. 0 to 10
D. 1 to 9
Solution
Step 1: Understand array size declaration
The array arr is declared with size 10, meaning it has 10 elements.
Step 2: Determine valid index range
In C, array indexing starts at 0, so valid indexes are from 0 up to size-1, which is 9.
Final Answer:
0 to 9 -> Option A
Quick Check:
Array indexes = 0 to size-1 = 0 to 9 [OK]
Hint: Array indexes start at 0 and end at size minus one [OK]
Common Mistakes:
Assuming array indexes start at 1
Using size as the last index
Confusing size with maximum index
2. Which of the following is the correct way to declare an array of 5 integers in C?
easy
A. int arr(5);
B. int arr[5];
C. int arr{5};
D. int arr = 5;
Solution
Step 1: Recall C array declaration syntax
In C, arrays are declared using square brackets with the size inside, like int arr[5];.
Step 2: Check each option
int arr[5]; uses correct syntax. Options A and C use parentheses or braces which are invalid for arrays. int arr = 5; assigns an int, not an array.
Final Answer:
int arr[5]; -> Option B
Quick Check:
Array declaration uses square brackets [OK]
Hint: Use square brackets [] to declare array size in C [OK]
Common Mistakes:
Using parentheses instead of brackets
Using braces instead of brackets
Assigning a single value instead of declaring array
3. What will be the output of the following code?
int arr[3] = {10, 20, 30};
printf("%d", arr[3]);
medium
A. Undefined behavior (may print garbage or crash)
B. 0
C. Compilation error
D. 30
Solution
Step 1: Analyze array size and indexing
The array arr has size 3, valid indexes are 0, 1, 2. Accessing arr[3] is out of bounds.
Step 2: Understand consequences of out-of-bounds access
Accessing outside array bounds in C causes undefined behavior. It may print garbage value, cause crash, or unpredictable output.
Final Answer:
Undefined behavior (may print garbage or crash) -> Option A
Quick Check:
Out-of-bounds access = undefined behavior [OK]
Hint: Accessing index >= size causes undefined behavior [OK]
Common Mistakes:
Assuming arr[3] prints last element
Expecting zero instead of garbage
Thinking compiler catches out-of-bounds
4. Identify the error in the following code snippet:
int arr[4];
for(int i = 0; i <= 4; i++) {
arr[i] = i * 2;
}
medium
A. Initialization of i is incorrect
B. Array size should be 5 instead of 4
C. Loop condition should be i < 4, not i <= 4
D. Multiplication by 2 is invalid
Solution
Step 1: Check loop bounds against array size
The array size is 4, so valid indexes are 0 to 3. The loop runs while i <= 4, which includes i=4, an invalid index.
Step 2: Correct the loop condition
Changing the loop condition to i < 4 ensures indexes 0 to 3 are used, avoiding out-of-bounds access.
Final Answer:
Loop condition should be i < 4, not i <= 4 -> Option C
Quick Check:
Loop index must be less than array size [OK]
Hint: Use < not <= for loop index to avoid out-of-bounds [OK]
Common Mistakes:
Using <= instead of < in loop condition
Assuming array size includes index equal to size
Ignoring off-by-one errors
5. Given the array declaration int nums[5] = {1, 2, 3, 4, 5};, which code snippet correctly sums all elements without causing out-of-bounds errors?
hard
A. for(int i = 0; i < 6; i++) sum += nums[i];
B. for(int i = 1; i < 5; i++) sum += nums[i];
C. for(int i = 0; i <= 5; i++) sum += nums[i];
D. for(int i = 0; i < 5; i++) sum += nums[i];
Solution
Step 1: Understand array size and valid indexes
The array nums has size 5, so valid indexes are 0 to 4.
Step 2: Evaluate each loop condition
for(int i = 0; i <= 5; i++) sum += nums[i]; uses i <= 5, which accesses nums[5] (out-of-bounds). for(int i = 1; i < 5; i++) sum += nums[i]; starts at 1, missing nums[0]. for(int i = 0; i < 5; i++) sum += nums[i]; uses i < 5, correctly iterating 0 to 4. for(int i = 0; i < 6; i++) sum += nums[i]; uses i < 6, accessing nums[5] (out-of-bounds).
Final Answer:
for(int i = 0; i < 5; i++) sum += nums[i]; -> Option D
Quick Check:
Loop from 0 to size-1 to avoid errors [OK]
Hint: Loop from 0 to less than array size for safe access [OK]
Common Mistakes:
Using <= size causing out-of-bounds
Starting loop at 1 missing first element
Looping beyond array size
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.