gpt4 book ai didi

c++ - 将 std::vector 转换为 char *

转载 作者:行者123 更新时间:2023-11-28 01:48:20 27 4
gpt4 key购买 nike

我正在尝试将 vector 转换为 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;
}

结束返回将是“”

最佳答案

不需要转换std::vector<CategoryStruct>已经将数据存储在连续的内存区域中。所以你的功能可以归结为

std::vector<CategoryStruct> categories;
char * Category::decodeCategoryToCharArray()
{
return reinterpret_cast<char*>(categories.data());
}

关于c++ - 将 std::vector<T> 转换为 char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43951656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com