이중포인터가 일차포인터를 가리키고 이중포인터를 통해서 일차포인터를 동적할당 해주는 과정에서 힙손상 오류가 납니다.
글쓴이: ehaakdl / 작성시간: 토, 2016/05/14 - 12:43오전
이중포인터가 일차포인터를 가리키고 이중포인터를 통해서 일차포인터를 동적할당 해주는 과정에서 힙손상 오류가 납니다. 웃긴게 5번 정도 할당되고 6번째는 메모리 재할당이 안됩니다.
[할당함수]
AllocTemp = AssignmentCheck(&nCol, &hFullBackup, &dwThId);
[내부 할당함수]
int AssignmentCheck(DWORD *nCol, HANDLE **hFullBackup, unsigned int **dwThId) //dwThId 살펴보기 { static int check; check++; if (*nCol == 0) { *hFullBackup = (HANDLE*)malloc(sizeof(HANDLE) * 1); if (!*hFullBackup) { dwErrInfo = GetLastError(); _tprintf(_T("Handle Mamory alloc Fail error:%d\n"), dwErrInfo); return MEMFAIL; } *dwThId = (unsigned*)malloc(sizeof(unsigned) * 1); if (!dwThId) { dwErrInfo = GetLastError(); _tprintf(_T("Thread Id Mamory alloc Fail error:%d\n"), dwErrInfo); return MEMFAIL; } } else { if(check >= 5) _tprintf(_T("start:%d\n"), check); *hFullBackup = (HANDLE*)realloc(*hFullBackup, sizeof(HANDLE) * 1); if (check >= 5) _tprintf(_T("end:%d\n"), check); if (!*hFullBackup) { dwErrInfo = GetLastError(); _tprintf(_T("메모리 할당 실패 main")); return MEMFAIL; } *dwThId = (unsigned int*)realloc(*dwThId, sizeof(unsigned int) * 1); if (!*dwThId) { dwErrInfo = GetLastError(); _tprintf(_T("메모리 할당 실패 main")); return MEMFAIL; } } return 0; }
Forums:
MWE 를
MWE 를 보여주세요
https://en.wikipedia.org/wiki/Minimal_Working_Example
댓글 달기