您的位置 首页 > 娱乐休闲

C语言中动态数组的实现

C语言中动态数组的实现

在C语言中,数组的长度在定义变量的时候便需要指定,并且只能是一个常数,不能是其它变量。所以,一旦定义了一个数组,系统将为它分配一个固定大小的空间,以后都不能改变,这样的数组称为静态数组。

但在某些时候,我们需要的数组的长度是无法预先确定的,要解决这样的限制,需要使用动态数组。动态数组是相对于静态数组而言。动态数组的内存空间是从堆(heap)上分配的,是在执行代码过程中分配的,当程序执行到这些语句时,才为其分配。注意,程序员自己负责释放内存。

创建动态数组的例子如下所示:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#include<;

#include<;

int main(){

int arrLen; //数组的长度

char *array; //数组指针

char c;

int i;

printf("please set the size of the array:");

scanf("%d",&arrLen);

// 动态分配内存空间,如果失败就退出程序

array = (char*)malloc( arrLen*sizeof(char) );

if(!array){

printf("创建数组失败!\n");

exit(1);

}

// 向内存中写入数据

for(i=0; i<arrLen; i++){

c =getchar();

array[i] = c; //*array++ =c;是通过指针对数组进行操作,也是可以的。

}

// 循环输出数组元素

for(i=0; i<arrLen; i++){

printf("%c ", array[i]);

}

printf("\n");

free(array); //释放内存

system("pause");

return 0;

}

运行结果,是你手动输入的字母。

malloc()是用来动态分配制定大小的内存空间。

free()是用来释放整块内存。

想要一起学习C++的可以加裙626871916,群内有各种资料满足大家

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“c语言中如何定义动态数组,c语言如何动态定义数组长度,c语言定义动态二维数组,c语言静态定义和动态定义”边界阅读