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,
 
     
     
     
    