多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

函数与扩容

函数与扩容 函数与扩容扩容背景具体操作扩容背景原理在C语言中常规定义的数组在初始化之后长度是不可变的且数组名存储的是数组首地址不支持重新赋值为其他数组的地址思路1数组定义之后长度不可变因此需要再创建一个更大的数组2将原数组的数据逐一迁移到新数组中3利用指针变量存储新分配内存的首地址通过指针加下标的形式来操作所有数据具体操作添加数据与扩容函数 当仓库存满时触发扩容机制并将旧数据迁移到新数组int*addData(intnum,intvalues[],int*size,int*length){intlen*length;intsi*size;// 先判断是否存满了if(silen){// 需要扩容intnewLenlen*2;int*newValues(int*)malloc(newLen*sizeof(int));// 迁移数据for(inti0;ilen;i){newValues[i]values[i];}// 更新数据*lengthnewLen;// 更新旧数组名存储的地址valuesnewValues;printf(扩容完成当前的总容量升级为: %d\n,*length);}values[si]num;*size*size1;// values 存储的是一个新数组的地址返回出去重新赋给 main 里面的 valuesreturnvalues;}将函数加入数字仓库
返回列表