私はソケット によってTの種類を送信するためにchar *にベクトルを変換しようとしているが、私が変換しようとしているシンプルな構造体コンバートのstd :: charへのベクトル<T> *
struct CategoryStruct {
int ID;
char name[32];
};
std::vector<CategoryStruct> categories;
機能であり、 -
char * Category::decodeCategoryToCharArray()
{
int structSize = sizeof(CategoryStruct),
currentByte = 0,
i = 0;
if(decoded)
delete [] decoded;
decoded = new char[structSize * categories.size()];
std::vector<CategoryStruct>::iterator start, end;
start = categories.begin();
end = categories.end();
for(; start != end; start++, i++)
{
memcpy(decoded+currentByte, &categories[i], structSize);
currentByte += structSize+1;
}
return decoded;
}
エンド・リターンは
'categories.data()'が 'memcpy'で直接返すものをそのままコピーすることができます。 – ForceBru
ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –
何も変換する必要はなく、 'categories.data()'を 'send'または' write'に直接渡します。 –