使用指针传递数组,修改数组中内容

大三开始一直写java,现在重新写c和c++,连基本的数组、指针也玩不转了,也侧面说明了大一的时候就没有打下坚实的基础。
亡羊补牢,为时未晚,

场景:在调用某个函数时,我需要获取到这个函数中的一张图片和一个数组(内容长度什么的都不知道),图片通过return作为结果返回,这个数组希望通过一个指针获取。

分析:
思路(目前采用的办法):
1.定义一个数组,一个指针,指针指向数组
2.传递这个指针,作为参数传到函数中
3.函数中将数组内容赋值到这个指针对应位置上*(p+i)和p[i]都可以访问对应位置
优势:思路简单,实现方便
劣势:不知道数组开多大,开大了浪费,开小了出错;即使获取到更新过的数组后,也无法知道哪些数据是有效的
解决方案:再传一个指针用来存储长度

优化:
1.在函数中,动态的创建数组大小,这样可以节省空间,同时创建完成之后需要释放内存,防止内存泄漏
2.在数组的第一位置存放数组的长度大小
image

image

image

posted @ 2021-10-08 21:08  魏晋南北朝  阅读(604)  评论(0编辑  收藏  举报