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);