Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
May 6, 1997

Processor fault

Question:
Why do I get with the following program, this error: general protection exeption, 0x215f:0x1ef3 timer(1) 0x215f:0x1ef3 Processor fault. Program (very small):
#include 
#include 
int get_value (int _value);

void main (void)
{

	int _time=0;
	int _timemod=1;
	clrscr();
	while (_time < 1000)
	{
		_time++;
		if (_time == 100)
		{
			get_value(_timemod);
			gotoxy (30,6);
			printf ("%d", _timemod);
		  _time = 0;
		}
	}
}

int get_value (int _value)
{
	gotoxy (30,5);
	printf ("El nuevo factor por favor : ");
	scanf ("%d", _value);
	return (_value);
}
I think the program fails in returning the value from get_value. Can you help me?

Answer:
There are two problems with your get_value function.

  1. If the parameter has to be modified, you need to pass it as a reference.

  2. scanf requires the address of the variable it is to write in, not the value.

So, if you rewrite your get_value as follows, you should be OK.

int get_value (int &value)
{
	gotoxy (30,5);
	printf ("El nuevo factor por favor : ");
	scanf ("%d", &value);
	return (value);
}
Also, it is a very poor programming practice to put leading underscores in variable names. These names are generally reserved by the C compiler for its own use.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date