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

leejeongmln님의 프로필 이미지
leejeongmln

작성한 질문수

구조체 scanf_s 질문

작성

·

56

0

 

안녕하세요. 구조체 코딩 공부하다가 오류가 계속 발생해서 무엇이 문제인지 모르겠어서 질문드립니다 ..ㅠ

scanf_s("%s" , p_friend->name, 메모리 크기)를 해야 되는거 같은데..

(unsigned int)sizeof(p_friend->name)를 추가하여 실행해봐도 실행이 안됩니다 ㅠㅠ

어떤 코드를 작성해야하는 것이 맞을까요..? 구글링해도 1시간째 고민을 해봐도 답이 없어 질문드립니다 !

답변 1

0

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

leejeongmln님, 구조체와 scanf_s 사용에 대한 질문을 주셨군요. scanf_s 함수 사용 시, 각 입력에 대한 버퍼 크기를 제공해야 하는데, 올바르게 하셨는지 확인이 필요합니다. 문자열(name)을 입력받는 경우, scanf_s의 문법은 다음과 같습니다.

scanf_s("%s", p_friend->name, (unsigned)sizeof(p_friend->name));

이 경우, p_friend->name의 메모리 크기를 올바르게 지정하신 것 같습니다. 하지만, 여전히 문제가 발생한다면, 다음을 확인해 보시기 바랍니다:

  1. 컴파일러가 scanf_s를 지원하는지 확인해 주세요. 일부 컴파일러에서는 scanf_s를 지원하지 않을 수 있으며, 이 경우 표준 scanf 함수를 사용해야 합니다.

  2. p_friend가 올바르게 할당된 메모리를 가리키고 있는지, 그리고 초기화 되었는지 확인하세요. 메모리 문제가 있을 경우 scanf_s에서도 오류가 발생할 수 있습니다.

  3. 프로그램의 다른 부분에 문제가 없는지 전체적으로 검토해 보세요. 질문에 제공된 정보만으로는 전체 코드의 맥락을 파악하기 어렵습니다.

만약 모든 검토 사항이 문제가 없음에도 불구하고 여전히 실행에 실패한다면, 개발 환경(컴파일러 버전 등)과 함께 구체적인 오류 메시지를 제공해 주시면 더 정확한 해결책을 제시할 수 있을 것입니다.

leejeongmln님의 프로필 이미지
leejeongmln

작성한 질문수

질문하기