C语言 动态数组实现

您所在的位置:网站首页 迷你coco和coco什么关系 C语言 动态数组实现

C语言 动态数组实现

2023-10-31 22:56| 来源: 网络整理| 查看: 265

一、概述

C语言是不能直接定义动态数组的,数组必须在初始化时确定长度。

如果要在程序运行时才确定数组的长度,就需要在运行的时候,自己去向系统申请一块内存用动态内存分配实现动态数组。

二、动态内存分配函数 1、malloc()函数 void *malloc(unsigned int size)

分配size个字节的内存空间,返回地址的指针,如果内存不够分,就返回空指针NULL。 注意:返回的指针是没有类型的,所以要使用得强制类型转换。

2、calloc()函数 void *calloc(unsigned int num, unsigned int size)

这个也是申请动态内存空间,不过就是分开了而已。 一共申请num个长度为size字节的内存空间。

3、free()函数 void free(void *p)

释放指针p内存空间。

这个很重要!!!!很重要!!!重要!!! 4、realloc()函数 void *realloc(void *p, unsigned int size)

给指针p申请的存储空间改为size个字节,返回的是存储空间首地址(指针)

三、动态数组实现 1、一维动动数组实现

dynamicArrayOneDimensional.c

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 36 37 38 #include #include /************************************************** dynamicArrayOneDimensional.c 输入N个数,求平均数 **************************************************/ main() { int *p = NULL, n, i, sum; printf("Please enter array size:"); scanf("%d", &n); /* 申请地址n个长度为sizeof(int)的连续存储空间 */ p = (int *)malloc(n * sizeof(int)); if(p == NULL) { printf("No enough memory!\n"); exit(0); } printf("Please enter the score:"); for(i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3