/* This code is a demonstration that C reuses memory for local variables. If you know exactly which functions will be running, you can do a cute demo where you know what value "unitialized" local variables will have. */ #include <stdio.h> void set_zero() { int x = 0; } void inc() { int y; y++; } void dec() { int z; z++; } int val() { int w; return w; } int main(int argc, char * argv[]) { printf("setting to 0\n"); set_zero(); printf("value is %d\n", val()); printf("inc twice\n"); inc(); inc(); printf("value is %d\n", val()); printf("dec once\n"); dec(); printf("value is %d\n", val()); return 0; }