The monitored command dumped core?

Well on a regular basis i get obstructed with this error , the monitored command dumped core.

Which is pretty much alien language to me, hence i cannot not possibly understand what the compiler is saying.

I looked up the internet , for what could be the reason and found out that i could be accessing index which has not been allocated memory, therefore i set on to make a simplest code possible and encounter the same error.

#include<stdio.h> int main() { int n; int a[100000]; scanf("%d",&n); int j=0; for(int i=2;i<=n;i+2) { if (i%2==0) { a[j]=i; j+=1; } } return 0; } 

But i don't understand how i could be accessing non allocated memory.

Also what could be the other reasons for the same error to occur such frequently.

6

4 Answers

I think the issue could be your for loop, as in the third part you're not updating i. To update, write it as i=i+2 or i+=2.

2

Your index j gets out of bounds:

Demonstration:

#include<stdio.h> int main() { int n; int a[100000]; scanf("%d", &n); int j = 0; for (int i = 2; i <= n; i + 2) { if (i % 2 == 0) { if (j > 100000) // <<<<<<<<<<<<<< { printf("Bummer\n"); return 1; } a[j] = i; j += 1; } } return 0; } 

Accessing an array with out of bounds results undefined behaviour (google that term).

3

You are incrementing the value of i. You have written i+2 instead of i+=2.

#include<stdio.h> int main() { int n; int a[100000]; scanf("%d",&n); int j=0; for(int i=2;i<=n;i+=2) { if (i%2==0) { a[j]=i; j+=1; } } return 0; } 

You are writing i+2 ,but you have to write i+=2.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like