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());
ベクトルの最初の要素のアドレスを渡すことは、生の配列の最初の要素のアドレスを渡すことと同じように機能しますか。こんなに簡単なの?