尝试将本地创建的数组的地址返回到C中的main函数

尝试将本地创建的数组的地址返回到C中的main函数,c,pointers,C,Pointers,我是C的新手,所以请耐心点。我创建了一个函数初始化,希望返回在初始化中创建和修改的数组。现在我知道我不能在C中返回数组,但我能做的是通过在return语句中指定数组名称来返回指向数组的指针。出于某种原因,当我这样做时,我收到了这个警告。现在我知道,初始化过程中arr的生存期仅延长到初始化结束,然后内存被释放,但我不确定如何解决这个问题。如果有人能解释发生了什么,我们将不胜感激 从具有不兼容返回类型“int*”的函数返回“int(*)(sizetype)(n)]” 警告:函数返回局部变量[-Wre

我是C的新手,所以请耐心点。我创建了一个函数初始化,希望返回在初始化中创建和修改的数组。现在我知道我不能在C中返回数组,但我能做的是通过在return语句中指定数组名称来返回指向数组的指针。出于某种原因,当我这样做时,我收到了这个警告。现在我知道,初始化过程中arr的生存期仅延长到初始化结束,然后内存被释放,但我不确定如何解决这个问题。如果有人能解释发生了什么,我们将不胜感激

从具有不兼容返回类型“int*”的函数返回“int(*)(sizetype)(n)]”

警告:函数返回局部变量[-Wreturn local addr]的地址

#包括
#包括
#包括
int*初始化(int n);
int main()
{
int-dim=2;
*p=初始化(dim);
返回0;
}
int*初始化(int n)
{
国际航空公司[n][n];
对于(int i=0;i
当函数返回时,本地自动变量停止存在


您可以返回对本地对象的引用,但不能取消引用,因为它引用的内存位置在函数返回后变得无效。

当函数返回时,本地自动变量停止存在

您可以返回对本地对象的引用,但不能取消对它的引用,因为它引用的内存位置在函数返回后变得无效