array doubling에 관한 문제입니다.
권시크
질문 제목 :array doubling에 관한 문제입니다.array를 포인터로 받아 동적할당 받습니다. 그리고 element가 꽉 차게 되면 array doubling을 합니다. 그런데 그 중간에 오류가 납니다.질문 내용 : 요약과 마찬가지로 doubling을 하는데요.
기존에 있던 array와는 별개로 temporary array 포인터를 하나 잡아서
temparr에 malloc으로 동적 메모리 할당을 합니다.그리고 생성된 temparr의 주소를 기존의 array포인터에 옮겨줍니다.
그리고 기존 array포인터를 free시켜주려고 하는데요...무엇이 잘못된건지 모르겠습니다. 코드와 에러메시지는 아래와 같습니다.
여기서 smmheap.array는 smmheap 구조체에 있는 int 포인터인 array이구요.. smmheap은 전역변수 입니다.
forfree가 free를 하기위해 smmheap의 주소를 임시로 받아 놓은 pointer입니다.
-
에가득
이거 문제해결 됬습니다 ! ㅎㅎ malloc에 sizeof(int)가 없더라구요 !
-
보아라
아 죄송합니다ㅠㅠ 크롬에선 굴림체로 보여서 굴림인줄 알았네요 ;; ㅎㅎ
-
거북이
질문게시판에는 덧글을 포함해서 반드시 돋움체 또는 굴림체를 사용해야 됩니다.
이 폰트로 계속해서 덧글을 쓰면 탈퇴가 됩니다.
폰트는 자신의 블로그에서 설정할 수 있습니다. -
슬아
제가 만드는 힙이 Symmetric Min-Max Heap인데요, 여기서 처음 두 노드는 필요가 없기때문에 0으로 초기화시켰습니다ㅠㅠ
이부분에서 메모리를 초과하는 걸까요 -
자올
temparr[0]과 temparr[1]이 왜 0으로 초기화되는지 모르겠네요
일단 답변을 하자면
smmheap.array[i+2]
i = smnheap.size - 1
을 대입해보세요.