c语言 动态数组

Python013

c语言 动态数组,第1张

#include <stdio.h>

#include <stdlib.h>

int main()

{

int num,*p=0,i

printf("输入数组元素个数:")

/*输入数组元素个数,保存到变量num中*/

scanf("%d",&num)

/*动态分配数组存储空间*/

p = (int *)malloc(sizeof(int)*num)

/*输入数据*/

for(i=0i<numi++)

{

scanf("%d",&p[i])

}

/*输出数据*/

for(i=0i<numi++)

{

printf("%d ",p[i])

}

/*删除动态创建的数组*/

free(p)

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

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

}