多语言展示
当前在线:1172今日阅读:84今日分享:32

如何使用vector取代动态字符数组

工作过程中,进行socket通信的过程中,通常需要动态创建字符数组来接受数据,使用完成之后,可能会忘记delete,并且由于vector会自动释放内存,所以,本文将说明如何使用vector来取代动态字符数组,来达到同样的效果。
工具/原料

C++

方法/步骤
1

通常socket通信的时候,如下图所示创建动态字符数组,使用完成之后,调用delete []释放内存

2

拷贝数据到字符数组中,输出的信息如下所示,这与拷贝前的数据是一致的

3

使用std::vector vec_msg(1024,0)来带代替字符数组,而vec_msg.data()可以获取数组的首地址

4

通过std::vector拷贝数据的效果与new创建字符数组的效果是一样的,并且std::vector不需要担心释放内存的问题

5

除了调用vector的函数data()来获取数组首地址之外,还可以通过如下图箭头指示的位置的方式来获取数组的首地址

6

从输出的结果看,与采用data()的方式的效果也一样的

7

通过vector还可以获取数组的最大容量,数组存放元素的个数以及当前数组是否为空

8

打印结果看,最大容量与元素个数大小一样,并且empty返回值是0,表示false,说明当前vector不是为空

注意事项
1

喜欢经验欢迎点赞投票!

推荐信息