1.如果是想要read到vector中,首先给vector分配足够的大小,之后使用&V[0]即可
1 2 3 4 |
std::vector<char> buffer(lSize); // 如果vector已经存在的话,使用resize方法 // buffer.resize(lSize) std::fread(&buffer[0], 1, buffer.size(), pFile); |
2.非read情况,想要将vector<char>转为char*的话
局部使用可以直接
1 |
reinterpret_cast<char*> (&buf[0]); |
c++ 11后支持
1 |
reinterpret_cast<char*>(buf.data()); |
非局部需要把vector拷贝到char*,首先给char*分配内存,然后拷贝
1 2 3 |
char* cbuffer = (char*)malloc(lSize * sizeof(char)); std::copy(buffer.begin(), buffer.end(), cbuffer); |