хорошо я с трудом пытается выяснить, почему ошибка сегментации происходит в следующем коде в одном из моих классов, функция вызывается один раз,ошибки сегментации в ofstream близко C++
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?'? Зачем вводить «новую» и утечку памяти без причины? – PaulMcKenzie
Ваш toSend может содержать только один символ. Вместо этого используйте новый char [totalSize_]: – Jonas
Что такое 'totalData_'? – PaulMcKenzie