Unknown C ESP function call error message

This is a discussion on Unknown C ESP function call error message within the C Programming forums, part of the General Programming Boards category; Help! I keep getting the following message after completeing a function call and returning to the main subroutiney but bombs ...

  1. #1
    Polar Fuzz
    Join Date
    Oct 2003
    Posts
    36

    Unknown C ESP function call error message

    Help!

    I keep getting the following message after completeing a function call and returning to the main subroutiney but bombs before I can choose to exit the program:

    Error:
    The value of ESP was not properly saved across a function call. This is usually the result of calling a function declared with one calling convention with a function pointer declared with a different
    calling convention.
    ******************* END OF ERROR MSG ****

    Code is simple, error occurs after running the largeNumber function below and after the program has returned. Note: the largeNumber function has not receiving or sending values.

    Code:
    #include <stdio.h>
    #include <ctype.h>
    
    char getMenuOption (void);
    void largestNumber (void);
    void diamond (void);
    
    int main (void)
    {
    	char  enterKey;
    	char  menuOption;
    
    	do
    	{
    	    menuOption = getMenuOption();
    		switch (menuOption)
    		{
    			case 'D' :  diamond ();
    				break;
    
    			case 'L' :  largestNumber();
    				break;
    						
    			default  :  printf("\n\n***** GOODBYE *****\n");
    		}
    
    		printf("\nPress [Enter] to Continue ");
    		scanf("%2c", &enterKey);
    		
    	}
    	while (menuOption != 'Q');
    
    	return 0;
    }
    
    void largestNumber (void)
    {
    ...... code .......
    
    return;
    }

  2. #2
    and the hat of wrongness Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    32,761
    > scanf("%2c", &enterKey);
    This is one instance of where you're going to be overwriting memory you don't own.

    If there are similar mistakes in your other functions, then I'd say that your memory overwrites are trashing the stack, giving you the bogus error messages.

    Best to post a small and complete program which still demonstrates the problem.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.
    I support http://www.ukip.org/ as the first necessary step to a free Europe.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. How to get RSSI value, send to sensor, sensor receive package, repackage it?
    By techissue2008 in forum Networking/Device Communication
    Replies: 1
    Last Post: 03-04-2009, 10:13 AM
  2. Undefined Reference Compiling Error
    By AlakaAlaki in forum C++ Programming
    Replies: 1
    Last Post: 06-27-2008, 12:45 PM
  3. Game Pointer Trouble?
    By Drahcir in forum C Programming
    Replies: 8
    Last Post: 02-04-2006, 02:53 AM
  4. Contest Results - May 27, 2002
    By ygfperson in forum A Brief History of Cprogramming.com
    Replies: 18
    Last Post: 06-18-2002, 02:27 PM
  5. Interface Question
    By smog890 in forum C Programming
    Replies: 11
    Last Post: 06-03-2002, 06:06 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21