Arrays in C represent contiguous blocks of memory of a single data type. Uninitialized local arrays contain garbage stack memory values. Initializing arrays cleanly using C99 designated initializers or zero-fill expressions is vital for system safety.
Array Initialization Methods Code Reference
#include <stdio.h>
#include <string.h>
int main(void) {
// 1. Full Explicit Initialization
int arr1[5] = {10, 20, 30, 40, 50};
// 2. Partial Zero Initialization (Remaining elements set to 0)
int arr2[100] = {0}; // All 100 elements initialized to 0
// 3. C99 Designated Initializer (Sparse Initialization)
int arr3[10] = {[0] = 1, [5] = 42, [9] = 99};
// 4. Multi-dimensional 2D Array
int matrix[2][3] = {
{1, 2, 3}, // Row 0
{4, 5, 6} // Row 1
};
printf("arr3[5]: %d, matrix[1][2]: %d\n", arr3[5], matrix[1][2]);
return 0;
}
Comments and corrections