Ranjeet
Ranjeet

Reputation: 1

handling data violation in c

I am starting to learn c and cannot find a clear example of handling memory violations. Currently I have written a piece of code that uses a variable and an array.

I assign a value to the variable and then populate the array with a set of initial values. However one of the values in the array is being saved at the same address as the variable and hence overwriting the variable.

Could some one please give me a simple example of how to handle such errors or to avoid such errors....thanks

Upvotes: 0

Views: 81

Answers (2)

Mike Nakis
Mike Nakis

Reputation: 61969

Once an error such as a memory violation has occurred in C, you cannot 'handle' it. So, you have to avoid it in the first place. The way to do what you want is as follows:

int a[10];
int i;
for( i = 0;  i < 10;  i++ )
    a[i] = 5;

Upvotes: 3

Alok Save
Alok Save

Reputation: 206518

This is a guess but seems pretty much your problem.
You are overwriting beyond the bounds of the array.

C does not guard you against writing beyond the bounds of an allocated array. You as a programmer must ensure you do not do so. Failing to do so will result in Undefined Behavior and then anything can happen(literally) your program might work or might not or show unusual behavior.

For eg:

int arr[10];

Declares an array of 10 integers and the valid subscript range is from 0 to 9,
You should ensure your program uses valid subscripts.

Upvotes: 2

Related Questions