⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’
Excalidraw Data
Text Elements
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Program execution starts here
How the program executes in Computer Memory?
main()
Stack
Stack frame
call stack: top of the stack executes.
include <stdio.h>
void increment(int a){ a = a + 1; printf(“Address of a in increment: %p\n”, &a); }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int = 10
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int = 10
increment(a=10)
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int = 10
increment(a=10) a: int = 11
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int = 10
increment(a=10) a: int = 11
increment function execution finished. Popped from Stack
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int = 10
printf (a from main)
OUTPUT: Value of a is 10.
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
main() a : int = 10
include <stdio.h>
void increment(int a){ a = a + 1; }
int main(){ int a; a = 10;
increment(a);
printf("Value of a is %d", a);
return 0;
}
Stack
END!