c++ - ofstream 关​​闭 C++ 中的段错误

标签 c++ segmentation-fault ofstream

好吧,我几乎没有试图弄清楚为什么在我的一个类中的以下代码中出现段错误,该函数被调用一次,

void fileTransfer::createFile(){
   std::ofstream fout;
   fout.open("th.txt", std::ios::binary | std::ios::out);
   char *toSend = new char();
   for (int i=0;i<totalSize_;i++) {
      toSend[i]=totalData_.front();
      totalData_.pop_front();
   }
   std::cout<<"stage 1"<< std::endl;
   fout.write(toSend, totalSize_);
   fout.flush();
   std::cout<<"stage 2"<< std::endl;
   fout.close();
   std::cout<<"stage 3"<< std::endl;
}

我得到:

stage 1
stage 2
Segmentation fault (core dumped)

知道为什么会这样吗?

最佳答案

这个:

  char *toSend = new char();

创建一个指向单个动态分配字符的指针,然后您将其视为多个字符的数组。你可以使用:

  char *toSend = new char[totalSize];

或类似的,但你真的想使用 std::vector <char>std::string .

关于c++ - ofstream 关​​闭 C++ 中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41666171/

相关文章:

c++ - 在偶数个元素的情况下打印链表的中间

当前出现段错误 : 11 and I am unsure why?

未执行的代码会导致段错误吗?

c++ - 使用记录器的基于策略的方法

c++ - 如何在文本文件中逐行搜索

c++ - QSslSocket 错误

c++ - 如何将下面的模板类泛化为调用任何函数?

c++ - C++ 引用中的函数描述与可能的实现

当数据复制/扫描/读取到未初始化的指针时崩溃或 "segmentation fault"

c++ - 使用 `ofstream` 似乎既不创建也不写入文件