请教,关于 C++中 char 二进制数据释放的问题

查看 35|回复 0
作者:Symbo1ic   
今天做项目的时候遇到了这样一个需求:需要读取一个二进制到指定的数据结构中,并释放二进制数据。
这个二进制数据大小是确定的,为 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
您需要登录后才可以回帖 登录 | 立即注册

返回顶部