0
내가 거의 세그먼트 오류가 함수를 한 번 호출, 내 클래스 중 하나에 다음 코드에서 발생하는 이유,세그먼트 오류
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'와 메모리 누수가 나오는 이유는 무엇입니까? – PaulMcKenzie
toSend는 하나의 문자 만 보유 할 수 있습니다. 대신 새로운 char [totalSize_]를 사용하십시오 : – Jonas
'totalData_' 란 무엇입니까? – PaulMcKenzie