Question: Consider a program that consists of two object modules below When this program is compiled and executed on an x86-64 Linux system, it prints the
Consider a program that consists of two object modules below


When this program is compiled and executed on an x86-64 Linux system, it prints the string 0xfffffff3 and terminates normally, even though function p2 never initializes variable main. Can you explain this?
/* foo.c */ void p2(void); int main()\{ p2(); return 0; \} /* bar.c */ \#include char main; void p2( )\{ printf( "0x\%x ", main)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
