我试图转换矢量为char *通过插座 发送T的类型是一个简单的结构转换的std ::矢量<T>为char *
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
欢迎来到Stack Overflow。请花些时间阅读[The Tour](http://stackoverflow.com/tour),并参阅[帮助中心](http://stackoverflow.com/help/asking)中的资料,了解您可以在这里问。 –
你不需要转换任何东西,直接将'categories.data()'传递给'send'或'write'。 –