소스를 올리기는 좀 그렇고..
그냥 질문 올립니다.
c++ 프로그램인데요.. 프로그램이 잘 동작하는데.. 종료시키면서 세그멘테이션 오류가 납니다.
보통 이런 것은 어떤 경우에 생기는지요?
질문이 너무 막연한가요?
파괴자에서 객체 파괴하면서 생기는건가? 흠..
막연합니다. ㅡ_-) 소스를 올려주세요.
객체 파괴를 할 때 보통 이런 경우가 있습니다.
MyClass::~MyClass() { Destory(); } void MyClass::Destroy(void) { delete pSomePointer; } ... MyClass cls; ... cls.Destroy(); ...
위와 같이 할 경우, Destory에서 해제된 pSomePointer영역이 MyClass cls 객체가 소멸되면서 또 한 번 pSomePointer를 지우려고 시도합니다. (물론 오류나죠)
보통 이런 스타일로 짜곤 합니다.
void MyClass::Destory(void) { if (pSomePointer) { delete pSomePointer; pSomePointer=NULL; } }
_____________________________ 언제나 맑고픈 샘이가...http://purewell.biz
여러가지 경우에 일어나는것 같습니다.
예를들면
printf("%d\n", 100/0);
요런 코드를 한번 컴파일해서 실행해 보세요..
세그멘테이션폴트가 나올꺼요?
그리고 주로
메모리를 잘못 사용하면 일어나죠 ^^;
이부분에 약해서 그런가?
아뭏든, 확실한건
아무 이유없이 일어나지는 않습니다.
============================== 꿈꾸는소년
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
막연합니다. ㅡ_-) 소스를 올려주세요.객체 파괴를 할 때 보통
막연합니다. ㅡ_-) 소스를 올려주세요.
객체 파괴를 할 때 보통 이런 경우가 있습니다.
위와 같이 할 경우, Destory에서 해제된 pSomePointer영역이
MyClass cls 객체가 소멸되면서 또 한 번 pSomePointer를
지우려고 시도합니다. (물론 오류나죠)
보통 이런 스타일로 짜곤 합니다.
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
여러가지 경우에 일어납니다
여러가지 경우에 일어나는것 같습니다.
예를들면
printf("%d\n", 100/0);
요런 코드를 한번 컴파일해서 실행해 보세요..
세그멘테이션폴트가 나올꺼요?
그리고 주로
메모리를 잘못 사용하면 일어나죠 ^^;
이부분에 약해서 그런가?
아뭏든, 확실한건
아무 이유없이 일어나지는 않습니다.
==============================
꿈꾸는소년
댓글 달기