:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/01/18 19:56
메모리 관련 버그는...
아무 상관 없는 A 때문에 (관련이 전혀 없어보이는) B라는 현상이 일어나기도 합니다. 위의 내용만으로는 원인을 알 수 없구요. 다른 코드도 다 찾아보시는 게 좋겠네요.
10/01/18 20:04
음;; 일단 클래스라는거 자체로 객체 프로그래밍이 되구요. 전역을 딱히 써야할 이유가 없다면 로컬로 쓰시는게 좋습니다.
로컬로 돌리시고 p_firm도 할당받아서 사용하는걸로 고치면 괜찮을꺼 같긴한데요;;
10/01/18 21:04
그냥 C언어는 아니네요. C 언어가 객체지향은 아니니... 우선 메모리 할당 제대로 받은 것이 맞는지 궁금하네요. new 제대로 했는지, 아니면 다른 문제가 있는지 버그가 여전히 나도록 코드를 최소화하여 올려주세요.
10/01/18 21:11
일단 클래스가 나왔으니 C는 아니고 C++이군요 ^^ 물론 C로 OOP가 안 되는건 아니지만...
잘 모르지만 제가 아는 한도 내에서 한번 생각해보면... 1) new를 이용해서 memory allocation하는 부분이 constructor에 존재하나요? 2) 1)에서 대답이 no인 경우, 당연히 가능한 일입니다. 아시겠지만 포인터라는 것은 주소를 가지는 것이고 , 처음부터 할당이 되지 않습니다. 그러니 포인터 값에 뭐가 들어가느냐에 따라 충분히 다른 영역을 침범할 수 있습니다. 3) 그리고 위의 문제가 발생한 부분은 C++책에 보면 항상 나오는 deep copy 문제와도 연관이 있는데.... 제가 이것을 풀어서 설명할 능력도 안되니, C++책 하나 열심히 보시는게 좋겠습니다 ^^;
|