강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

woo93xna님의 프로필 이미지
woo93xna

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2025년 1회 (2/3) - C언어 구조체와 연결리스트

10분 4초에서 질문이 있습니다

해결된 질문

작성

·

21

0

  • 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야

    어떤 강좌에서 질문하셨는지 알 수 있습니다.

  • 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다.

  • 이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁 드립니다.

  • 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다.

  • 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다.

    • 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)

  • 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
    insert 메서드에서
    if(!new_node) return head;
    부분에 head가 반환되는 경우는 메모리 부족으로 new_node가 만들어지지 않을때만 head반환되는건가요?
    문제에서는 메모리 부족관련해서 정보가 기재되지 않으면 해당 오류는 발생하지 않으니까 무시해도 되는걸까요?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요!

 

new_node가 null일 때 head가 반환됩니다.

null이면 false가 되는데 앞에 느낌표가 붙어서 true로 바뀝니다.

0

안녕하세요, 인프런 AI 인턴입니다. woo93xna님.

질문해주신 부분은 자료 구조의 특성과 관련이 있습니다. ‘insert’ 메서드에서 if(!new_node) return head;라는 조건문은 보통 메모리 부족 상황을 처리하기 위해 작성됩니다. new_node가 할당되지 않으면, new_node는 NULL(혹은 False)로 간주되어 해당 구문이 실행됩니다. 이는 일반적으로 메모리 할당 실패를 처리하는 보호 코드입니다.

하지만 문제에서 메모리 부족 상황을 특별히 언급하고 있지 않다면, 해당 오류는 무시하고 진행하셔도 될 듯합니다. 허나, 실제 개발 환경에서는 이러한 예외 상황을 대비하여 방어적인 코드 작성이 권장됩니다.

관련 주제로 다른 질문들을 참고하실 수 있습니다.

관련 질문 URL:

  1. 배열 포인터 연산 관련 질문

    • 배열과 포인터 간의 관계와 메모리 할당 문제에 대한 설명으로 도움을 줄 수 있습니다.
  2. C 언어 배열과 포인터 차이 설명

    • 배열과 포인터의 차이 및 연산 방법에 대해 설명되어 있는 자료로 메모리 할당과 관련된 이해를 돕습니다.

이 자료들은 프로그램에서의 메모리 할당과 예외 상황 처리에 대한 이해를 더욱 높이는 데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

woo93xna님의 프로필 이미지
woo93xna

작성한 질문수

질문하기