我偶然发现的东西让我感到惊奇。 这为什么有效?将一个指针作为参数传递给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