Something I stumbled upon and made me wonder. Why does this work?
void foo (int* a) { int x = 3; *a = x; } int main() { int a; foo(&a); return 0; } But this causes a segmentation fault (both on Visual Studio 2008 and gcc)?
void foo (int* a) { int x = 3; *a = x; } int main() { int* a; foo(a); return 0; } Is it something defined in the language or just an implementation issue?