If I declare 2 arrays arr1 and arr2 in C (on Windows) and fill arr1 with integers 0 to 15, some of the overflow goes to arr2, but not all of it. Why?
int arr1[10];
int arr2[10];
int arr3[10];
int i;
for (i = 0 ; i < 10 ; i++)
{
arr1[i] = 100 + i;
arr3[i] = 300 + i;
}
for (i = 0 ; i < 15 ; i++)
{
arr2[i] = 200 + i;
}
printf ("arr1: ");
for (i = 0 ; i < 10 ; i++)
printf ("%d, ", arr1[i]);
printf ("\n");
printf ("arr2: ");
for (i = 0 ; i < 10 ; i++)
printf ("%d, ", arr2[i]);
printf ("\n");
printf ("arr3: ");
for (i = 0 ; i < 10 ; i++)
printf ("%d, ", arr3[i]);
printf ("\n");
Output:
arr1: 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
arr2: 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
arr3: 212, 213, 214, 303, 304, 305, 306, 307, 308, 309,
Expected:
arr1: 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
arr2: 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
arr3: 210, 211, 212, 213, 214, 305, 306, 307, 308, 309,