Non-static variables (local variables) are indeterminate. Reading them prior to assigning a value results in undefined behavior.
Either initialize the variables:
#include <stdio.h>
int main () {
int a = 1;
int b = 2;
int c = 3;
int d = 4;
printf("ta-dah: %i %i %i %i\n", a, b, c, d);
return 0;
}
Output: ta-dah: 1 2 3 4
Or set them to static:
#include <stdio.h>
int main () {
static int a;
static int b;
static int c;
static int d;
printf("ta-dah: %i %i %i %i\n", a, b, c, d);
return 0;
}
Output: ta-dah: 0 0 0 0
2
solved Understanding garbage collection in C [closed]