mimmyum   6년 전

어떤 부분에서 메모리 초과가 나는지 모르겠네요... 배열 크기때문이가 싶어서 class table을 매 테스트 케이스마다 생성/ 소멸 해줬는데... 

다른 테스트 케이스들은 다 잘 나옵니다... 뭐가 문제일까요..

bupjae   6년 전

메모리 할당은 malloc를 사용하고 있는데 메모리 반납은 delete[]를 사용하고 있습니다.

이는 잘못된 프로그램이며, C++ 표준에 의하면 이 프로그램의 결과는 정의되어 있지 않습니다. (Undefined Behavior)


bupjae   6년 전

한 가지 더 추가하자면, 메모리를 할당할 때 각 row를 따로 할당받았다면 메모리를 반납할 때도 각 row를 따로 반납해야 합니다.

mimmyum   6년 전

아래와 같은 방식으로 row별 메모리 delete를 했는데도 메모리 초과가 나오네요...

제가 어디선가 메모리 접근을 잘못하고 있는걸까요..

bupjae   6년 전

메모리 할당도 new[] 로 하고 있나요?

mimmyum   6년 전

말씀해 주신거 보고 앗! 하고 

동적할당 malloc 으로 했으니깐 malloc으로 할당한 부분은 모두 free로 다시 메모리 해제하도록 했는데

50%에서 다시 메모리초과가 뜨네요...OTL

@bupjae 님, 계속 도움 주셔서 감사합니다... 

중간에 한번 움직인 다음의 내용을 newList에 옮겨담는게 문제일수도 잇다고 생각해서 일단 그거를 바꿔보도록 할게요..

mimmyum   6년 전

방식을 바꿔서 다시 풀었습니다....

클래스를 아예 안쓰고 다른방법으로 푸니깐 풀렸네요... 감사합니다 ... 

댓글을 작성하려면 로그인해야 합니다.