需要分配流指针的内存

问题描述 投票:0回答:1

在此程序中:

#include<fstream>
#include<iostream>

int main()
{
   std::ofstream *fb;
   (*fb).open("file.txt",std::ios::out);

   std::cout.rdbuf((*fb).rdbuf());

   std::cout<<"Hello World to ALL";

   return 0;
}

在运行时会给出分段故障-如此将*fb更改为fb会有所帮助,因为未分配空间

但是我不明白的是,为什么ofstream对象如果需要处理的内存(file.txt)已经存在,为什么需要分配空间?难道不像用[[C语言处理文件I / O的方式,即使用FILE指针打开然后在不分配任何内存的情况下执行操作吗?

加上使用ofstream指针从功能上(理论上)表示

已分配内存

代表什么?
c++ io
1个回答
0
投票
您创建了一个类型的变量来保存指向std::ofstream对象的指针,但实际上并没有使其指向任何内容。因此,当您在指向它的对象上调用open时,根本就没有在任何有效对象上调用open
© www.soinside.com 2019 - 2024. All rights reserved.