Consider this snippet:
int numbers[9] = {5, 2, 78, 23, 8, 9, 3, 12, 97};
int arrLength = (sizeof(numbers) / sizeof(int));
for(int i = 0; arrLength; i++) {
printf("%d\n", numbers[i]);
}
I'd given an array length as the second parameter to the loop, but gave it no conditional for when to stop. The out gave the 9 numbers inside my array and then continued. Here is an example of the program output. The program output easily over 100 digits in this manner. Can anyone explain what is at play?

In this case, the condition is supplied.
is the same as
In other words, the controlling expression (a.k.a. condition check) should evaluate to TRUE for continuing the execution of the loop body.
From
C11, chapter 6.8.5, P4and, footnote 158,
forloopIn case the condition is not supplied, it's considered as a non-zero (always true value).
Chapter 6.8.5.3, Paragraph 2