这个二进制数据大小是确定的,为 1024B 。现在我遇到两个问题:一是无论怎么释放这个 char*都会遇到 exception 。我尝试过使用 unique_ptr 进行包装,也尝试过直接使用 delete[] ptr 但都不好使。想问各位大神这种情况应该怎么释放数据?
二是在 main 中的 memcpy 之后,任何 cout 内容都会转移到 badbit 状态,这个我没有查到相关的资料,请问这是什么情况?
代码附上:
int main() {
file_system::Block block;
file_system::IndexData index_data;
std::unique_ptr data(index_data.GetBlock()); //GetBlock 返回一个 char*
memcpy(block.data, data.get(), sizeof(char) * block_size);
//data.release();
file_system::IndexData index_data2(&block);
for (auto &i: index_data2.index_vector) {
std::cout