C语言 动态数组实现 |
您所在的位置:网站首页 › 迷你coco和coco什么关系 › C语言 动态数组实现 |
一、概述
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 |