char*-vector

 

1.如果是想要read到vector中,首先给vector分配足够的大小,之后使用&V[0]即可

std::vector<char> buffer(lSize);
// 如果vector已经存在的话,使用resize方法
// buffer.resize(lSize)
std::fread(&buffer[0], 1, buffer.size(), pFile);

2.非read情况,想要将vector<char>转为char*的话

局部使用可以直接

reinterpret_cast<char*> (&buf[0]);

c++ 11后支持

reinterpret_cast<char*>(buf.data());

非局部需要把vector拷贝到char*,首先给char*分配内存,然后拷贝

char* cbuffer = (char*)malloc(lSize * sizeof(char));

std::copy(buffer.begin(), buffer.end(), cbuffer);

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注