Search⌘ K
AI Features

Discussion: Whoa! Hold on There

Explore how C handles array bounds and why it does not automatically prevent overflow errors. Understand how overflow can cause segmentation faults or erroneous output. Learn to use constants to define array sizes and prevent buffer issues, improving your coding safety and clarity.

Run the code

Now, it's time to execute the code and observe the output.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
  int array[5];
  int x;
  srand( (unsigned)time(NULL) );
  for( x=0; x<12; x++ ) {
    array[x] = rand() % 100;
    printf(" %d", array[x]);
  }
  putchar('\n');
  
  return(0);
}
C code for the given puzzle

Understanding the output

The code fetches random numbers, packing them into an array. Due to overflow, however, a segmentation fault or similar error is generated. Different compilers create programs that may display erroneous data, such as very large values. Some programs may run without any noticeable issue.

Does C automatically check array bounds?

Of all the major programming languages used ...