我偶然發現的東西讓我感到驚奇。 這爲什麼有效?將一個指針作爲參數傳遞給C中的一個函數
void foo (int* a)
{
int x = 3;
*a = x;
}
int main()
{
int a;
foo(&a);
return 0;
}
但是,這會導致分段錯誤(在Visual Studio 2008和gcc上)?
void foo (int* a)
{
int x = 3;
*a = x;
}
int main()
{
int* a;
foo(a);
return 0;
}
是在語言中定義的東西還是隻是一個實現問題?
您應該在第二個示例中收到警告。 – Mysticial 2012-02-27 00:52:39