C Programming - Arrays - Discussion

Discussion Forum : Arrays - General Questions (Q.No. 1)
1.
What will happen if in a C program you assign a value to an array element whose subscript exceeds the size of array?
The element will be set to 0.
The compiler would report an error.
The program may crash if some important data gets overwritten.
The array size would appropriately grow.
Answer: Option
Explanation:

If the index of the array size is exceeded, the program will crash. Hence "option c" is the correct answer. But the modern compilers will take care of this kind of errors.

Example: Run the below program, it will crash in Windows (TurboC Compiler)

#include<stdio.h>

int main()
{
    int arr[2];
    arr[3]=10;
    printf("%d",arr[3]);
    return 0;
}

Since C is a compiler dependent language, it may give different outputs at different platforms. We have given the Turbo-C Compiler (Windows) output.

Please try the above programs in Windows (Turbo-C Compiler) and Linux (GCC Compiler), you will understand the difference better.

Discussion:
27 comments Page 3 of 3.

Nar singh yadav said:   1 decade ago
What does the following declaration means int (*ptr) [10];?

Haritha said:   9 years ago
I tried it in linux compiler it gave the output as 10.

Subhakar said:   5 years ago
@ALL.

C compiler doesn't do bounds checking.

Saloni said:   1 decade ago
I tried it on Turbo C and get result 10.

Rama said:   8 years ago
Why we don't do this program in java?

Naresh said:   1 decade ago
What is a magic matrix?

Manojkumar said:   1 decade ago
Very good.


Post your comments here:

Your comments will be displayed after verification.