realloc 사용법이 틀렸습니다.
예를 들어서 30번째 줄에서 tmp1 = realloc(relations[a].arr, sizeof(int) * (relations[a].count + 1)); 를 실행한 후에는 relations[a].arr 를 더 이상 사용할 수 없고, 대신 반환값인 tmp1 을 사용해야 합니다.
"올바른" 사용법은 relations[a].arr = realloc(relations[a].arr, sizeof(int) * (relations[a].count + 1)); 와 같은 형태 입니다.
jakeehoson 3년 전
realloc시 기존의 포인터를 free하고 새로운 포인터를 주는 것으로 알고 있습니다.
제 소스코드에서 어떤 이유로 double free 오류가 발생하는 지 알 수 있을까요?
제가 쓰는 온라인 IDE에서는 double free가 일어나지 않는데 채점 환경에서는 double free 런타임 에러가 발생합니다.
어떤 차이점 때문에 그런건가요?