Computer ForumsComputers  

Go Back   Computer Forums > Programmers Lounge > Programming Discussions

Reply
 
LinkBack Thread Tools Display Modes
Old 04-05-2005, 06:24 PM   #1 (permalink)
True Techie
 
Join Date: Dec 2004
Posts: 145
Default C Programming

Hi Everyone,
I write a program to add 4 digit numbers. When I compile a program I didn't get any error message. But When I run the program I am getting message like

"segmentation fault". Anybody can find any logical error in my program.

For Information. I am compiling the codes using inbuilt compiler in Redhat Linux machine.

my code is

int i,no;
float sum = 0;
scanf("%d",&no);
for(i=1;i<=4;i++)
{
sum=sum+no%10;
no=no/10;
}
printf("Sum=%f",sum);
Mohan Giri is offline   Reply With Quote
Old 04-05-2005, 10:38 PM   #2 (permalink)
Monster Techie
 
Join Date: May 2004
Location: /usr/root/mn/us
Posts: 1,098
Default

I have no idea what would be wrong with that.
I compiled it using the gcc compiler and it worked perfeclty.

Even the fact that scanf doesn't check for wrong input, in this case it will either cast a non-int to an int, or interpret a string as its numerical value.

Maybe post the entire function to see if something else is causing it.
__________________


Its a frigging Laptop, not a Labtop!!!!
bla!! is offline   Reply With Quote
Old 04-08-2005, 10:31 PM   #3 (permalink)
Newb Techie
 
Join Date: Apr 2005
Posts: 8
Default

segmentation fault occurs when a program tries to access restricted part of memory.you can correct it easily.
ashishjha54 is offline   Reply With Quote
Old 04-09-2005, 06:51 PM   #4 (permalink)
Monster Techie
 
Join Date: May 2004
Location: /usr/root/mn/us
Posts: 1,098
Default

Yes, but how is this function accessing any memory other than its own?

From what we're given, it's a straight forward calculation. It doesn't recurse, and the function scanf prevents buffer overflows (for the most part).

I don't see how this function could wind up accessing any memory other than its own given to it by the OS.
__________________


Its a frigging Laptop, not a Labtop!!!!
bla!! is offline   Reply With Quote
Old 04-10-2005, 11:13 AM   #5 (permalink)
Newb Techie
 
Join Date: Dec 2004
Posts: 46
Default

Try a different complier and see if you get the same results.

Or, you could use pointers to see where the info is going; maybe you'll be surprised?
__________________
Ed Womack
Get Milked
ewomack is offline   Reply With Quote
Old 04-14-2005, 08:56 PM   #6 (permalink)
Newb Techie
 
Join Date: Apr 2005
Posts: 6
Default

someone tell me what scanf does
f11m is offline   Reply With Quote
Old 04-15-2005, 08:40 AM   #7 (permalink)
True Techie
 
Join Date: Dec 2004
Posts: 145
Default

scanf stores value which we enter through keyboard into memory in the location of no's address
Mohan Giri is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -5. The time now is 12:48 AM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.1.0