我想重写一些使用大量unsigned char
数组的代码,而不是使用std::vector<unsigned char>
对象。我遇到的问题是这些当前用于存储将写入串行端口或套接字写入缓冲区的数据,并且执行此操作的库函数采用void*
或unsigned char*
. 这种函数的一个例子是
WriteToSocketBuffer(unsigned char* pBuffer, int iSize);
所以目前我有形式的代码
unsigned char* pArray = new unsigned char[iSize];
// populate array with data
WriteToSocketBuffer(pArray,iSize);
delete [] pArray;
我的问题如下:如果我将类更改std::vector<unsigned char>
为使用原始数组而不是原始数组,我可以简单地使用调用我的库函数吗
std::vector<unsigned char> myVector;
WriteToSocketBuffer(&myVector[0],myVector.size());
传递向量中第一个元素的地址是否与传递原始数组中第一个元素的地址相同。就这么简单吗?