In this section:
This error is generated when an attempt is made to call a function through either an invalid or unknown function pointer.
|
A simple way to generate this error is through the use of the union data type. If the union contains a function pointer which is invoked after initializing some other union member, this error can occur.
/*
* File: funcbad.c
*/
union {
int *iptr;
int (*fptr)();
} u;
main()
{
int i;
u.iptr = &i;
u.fptr();
return (0);
} |
[funcbad.c:14] **FUNC_BAD** >> u.fptr(); Function pointer is not a function: u.fptr Pointer : 0xf7fff8cc In block : 0xf7fff8cc thru 0xf7fff8cf (4 bytes,1 element) i, declared at funcbad.c, 11 Stack trace where the error occurred: main() funcbad.c, 14 **Memory corrupted. Program may crash!!** |
The description of the memory block to which the pointer points should enable you to identify the statement which was used to assign the function pointer incorrectly.