在其中一个程序中,我创建了一个函数,它的一个参数是一个指针。该函数为指针动态分配了一些内存,并返回了已分配内存的大小以及其他详细信息。但是,一旦执行该函数,分配的内存就会被销毁。
如何保持函数外部对函数内部分配的内存的访问和数据完整性?
以下是阅读回复后修改的代码:
void initialize(int **arr)
{
int i = 0;
*arr = malloc(sizeof(int) * 10);
for (; i < 10; ++i)
*arr[i] = i + 1;
for (i = 0; i < 10; ++i)
printf("\n%d", *arr[i]);
}
int main()
{
int i = 0;
int *arr;
initialize(&arr);
for (; i < 10; ++i)
printf("\n%d", arr[i]);
return 0;
}
但是当我运行它时,它说“rr.exe 已停止工作”;虽然它编译成功。没有任何东西被打印出来,甚至从函数中的 printf 也没有。