This code compiles, but I have a run time error in Visual Studio:
Run-time check failure #3 - the variable 'x' is being used without being initialized...
int x = 15; int main() { int x = x; return 0; } I don't understand that behavior... in the error box when I click continue the program resumes and x has a corrupted content (like -8556328 instead of 15).
Why does this code work without a problem, and the int array is well declared?
const int x = 5; int main() { int x[x] = {1,2,3,4}; return 0; }
gcc 4.8.4, compiles and this program can be run with-Wall -Wextra -pedanticturned on.clang 7.0.0compiles it, and can be run as is. However ifprintf("%d\n", x);is added afterint x=x;(I guess any actual usage ofx), the compiler gives the more friendly warning:warning: variable 'x' is uninitialized when used within its own initialization [-Wuninitialized].gccstill compiles and runs it even with theprintfand printed0. However running the program through valgrind givesConditional jump or move depends on uninitialised value(s)