#include<stdio.h>
#include<stdlib.h>
int
main()
{
int
*a=NULL,n,i
scanf("%d",&n)
a=(int
*)malloc(n*sizeof(int))
for(i=0i<n++i)
a[i]=i
for(i=0
i<n
++i)
printf("%d
",a[i])
free(a)
a=NULL
return
0
}
1定义指针。
2
使用malloc函数分配内存。
3
对数组进行访问即可。
对于一维动态数组,直接定义一维指针,并分配内存空间即可。
比如int类型的10个元素动态数组,写作
int
*a
a
=
(int
*)malloc(sizeof(int)
*
10)
如果是多维数组,需要从高维向低维逐层分配。如二维数组10*100空间。
int
**a
int
i
a
=
(int
**)
malloc(sizeof(int
*)
*
10)
//
先分配10个int*的空间。
for(i
=
0
i
<
100
i
++)
a[i]
=
(int
*)malloc(sizeof(int)
*
100)
//
对于每个int*,分配100个元素的空间。