When you compile and run the program, you will get a run-time error.
#include <stdio.h>
void newFunction( int *p )
{
printf(" p=%d\n", *p );
}
void main ( void )
{
int a = 77 ;
printf("a=%d\n", a ) ;
newFunction( a ) ;
}
This is a case where the caller main() and the callee
newFunction() are not properly coordinated.
main() passes the contents of the variable
a (which is 77):
newFunction( a )
But newFunction(int *p) expects the address
of an int variable (a pointer to an int). So when
it calls
printf(" p=%d\n", *p )
it tries to go to address 77 in memory. But 77 points to a place in memory that this program does not have access to. The operating system does not let the program do this, and kills it.