exs*_*ake 0 c memory arrays dynamic
#include <stdio.h>
#include <stdlib.h>
void dim(int*,int);
int main()
{
int *array ;
int n,i;
scanf("%d",&n);
dim(array,n);
for(i=0;i<n;i++)
scanf("%d",&array[i]);
for(i=0;i<n;i++)
printf("%2d",array[i]);
}
void dim(int *array,int n){
array=malloc(n* sizeof(int));
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我不能这样做?
我不能通过函数给数组赋一个维度?
我试图在互联网上找到它是如何工作的,但我发现任何东西,所以我更喜欢在这里发布它以获得直接答案.
谢谢!抱歉我的英语
将array在功能由值,你分配什么传入dim不影响array中main,它的内存泄漏.
而是将指针传递给指针:
void dim(int **array,int n){
*array=malloc(n* sizeof(int));
}
Run Code Online (Sandbox Code Playgroud)
称之为:
dim(&array,n);
Run Code Online (Sandbox Code Playgroud)