工作过程中,进行socket通信的过程中,通常需要动态创建字符数组来接受数据,使用完成之后,可能会忘记delete,并且由于vector会自动释放内存,所以,本文将说明如何使用vector来取代动态字符数组,来达到同样的效果。
工具/原料
C++
方法/步骤
1
通常socket通信的时候,如下图所示创建动态字符数组,使用完成之后,调用delete []释放内存
2
拷贝数据到字符数组中,输出的信息如下所示,这与拷贝前的数据是一致的
3
使用std::vector
4
通过std::vector拷贝数据的效果与new创建字符数组的效果是一样的,并且std::vector不需要担心释放内存的问题
5
除了调用vector的函数data()来获取数组首地址之外,还可以通过如下图箭头指示的位置的方式来获取数组的首地址
6
从输出的结果看,与采用data()的方式的效果也一样的
7
通过vector还可以获取数组的最大容量,数组存放元素的个数以及当前数组是否为空
8
打印结果看,最大容量与元素个数大小一样,并且empty返回值是0,表示false,说明当前vector不是为空
注意事项
1
喜欢经验欢迎点赞投票!