esinfam99   3년 전

순서가 변하지 않는다하여 stable_sort를 사용하였고

이름을 비교할 필요가 없어 compare 함수에는 first로만 비교했습니다.

나이가 같은 경우는 false가 호출될 거니 괜찮을 거라고 생각했는데

런타임에러(InvalidPointer)가 나오네요.

어디서 invalid pointer가 나오는 건지 잘 모르겠습니다.

참고로 Vscode에서 실행해보는데 예제나 반례들은 잘 나오는 것 같습니다 ㅠㅠ

pv104   3년 전

30번째 줄의 delete users;를 delete[] users;로 바꿔보세요.

동적할당한 배열을 delete로 소멸시키려고 해서 에러가 나는 것 같습니다.

esinfam99   3년 전

@pv104님 말대로 해서 통과되었습니다.

감사합니다!

근데 제가 궁금한 점이 있어 여쭤봅니다.

제가 여태 백준에서 문제를 풀 때, 동적할당을 하게 되면 모두 1차원 배열은 delete 배열이름; 형태로 코딩했고

2차원 배열같은 경우

for (int i = 0; i < 배열크기; i++) {

    delete 배열이름[i];

}

delete 배열이름;

과 같은 형태로 delete 해왔는데 한 번도 런타임에러가 난 적이 없습니다. 혹시 둘이 어떤 차이인지 알 수 있을까요? (delete, delete[] / delete[]해야만 맞는 이유랄까요??!)

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