질문과 답변

"17-2-바.정보의 저장"에서 함수 문의(??) 날짜:2021-7-1 5:29:05 조회수:81
작성자 : 똥강아지
포인트 : 31
가입일 : 2021-01-08 18:09:19
방문횟수 : 21
글 3개, 댓글 12개
소개 : 초보 개발자입니다
작성글 보기
쪽지 보내기
바쁘실텐데.. 괜한 질문이 아닐지 싶지만...

void DeleteAll()
{
    for(int i=0; i<Num; ++i)
    {
        if(Friends[i].Name = NULL)
           break; <---------------------이부분
        free(Friends[i].Name);
    }
    memset(Friends, 0, sizeof(Friends));
    Num = 0;
}

break가 아니라 continue 아닐까요?
Name pointer가 NULL이라면, 함수를 끝내는것이 아니라, 다음 멤버를 체크 해야하니까요^^



언젠가는 나도 고수가 되겠지

목록보기 삭제 수정 신고 스크랩

작가K 7월10일 9:29:51  

break가 맞습니다.
Friends 배열에서 Name이 NULL이라는 것은 배열의 끝이라는 뜻입니다.
for 루프로 Friends 배열을 순회하다가 끝을 만나면 더 지울게 없으니 루프를 빠져 나갑니다.
이 경우는 for 루프가 Num 직전까지만 돌도록 되어 있어서 NULL을 만날 경우도 없겠네요.
만약 중간 레코드를 삭제하는 코드가 있고 이 경우 Name을 NULL로 정의한다면 이때는 continue가 맞습니다.
예제에는 이런 처리가 없으니 현재 구조상으로는 break가 합당합니다.


로그인하셔야 댓글을 달 수 있습니다.