C语言如何定义动态数组

Python057

C语言如何定义动态数组,第1张

C语言定义动态数组需要用到动态内存分配函数,参考代码如下:

#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个元素的空间。

头文件:#include

建议加上#include

就不需要stdlib了

具体实现:类型+指针=(类型*)calloc(数组大小,sizeof(类型));

例子:

#include

#include

//

#include

//这两个头文件任选一个就行了,上面的范围更大

int main()

{

int n,i

scanf("%d",&n)//输入数组大小

int *p=(int *)calloc(n,sizeof(int))//申请了一个长度为n的数组,用p指向首地址

for(i=0i