C언어 문자열입력
조회수 564회
#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, 참고 하시면 좋을 것 같네요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력