C언어 문자열입력

조회수 563회
#include <stdio.h>
#include <stdlib.h>

void SetInteger();

int main(void)
{
    SetInteger();
}

void SetInteger()
{
    unsigned char *ptr;
    scanf("%s", ptr);
    printf("%s", ptr);
}
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    unsigned char *ptr;
    scanf("%s", ptr);
    printf("%s", ptr);
}

위에 같은경우 함수를 사용하면 입력은 받지만 입력받은 값을 출력하지않지만 아래 같은 경우 main에서 바로 하게되면 입력받은 값을 출력을 합니다. 어떤 차이점이 있는지 알고싶습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • char * 에는 scanf() 함수로 문자열을 입력 받을 수 없습니다. 문자열을 입력 받기 위해서는 malloc() 함수를 사용하여 메모리를 할당한 후에 사용 가능 합니다. 또는 char[] 배열로 선언하여 미리 메모리 할당을 한 후 문자열을 입력 받을 수도 있습니다.

    https://dojang.io/mod/page/view.php?id=337, 참고 하시면 좋을 것 같네요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)