所以,我在一本书中得到了一个例子:
int * func()
{
int A[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
return (int*)A;
}
void main(void)
{
int *a = func();
cout << *(a + 2*3 + 1);
system("PAUSE");
}
我试过运行它并且工作正常。
我的问题是我们在func()例程中提供了堆栈内存,这些内存应该可用(编译器可以在同一地址分配一些其他变量)。这是正确的方法吗?我认为这可能会导致UnDefined Behavior ..