아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
사려깊은꽃새100
사려깊은꽃새10021.11.07

c언어 소스 관한 문제질문입니다??

다음 소스에 오류가 나는 이유를 적으시오.

char ch='A';

void *p = &ch;

printf("%c\n",*p) 이거만 적어놓고 코드를 작성 할 라구 막막한데 이 세가지만 보고 소스오류라는 문제가 뭔지 모르겠네요?

포인터에서 함수부터 어러워지더라구요?

55글자 더 채워주세요.
답변의 개수2개의 답변이 있어요!
  • 안녕하세요. 꾸준한하마55입니다.

    소스코드 파일 다운로드 : https://github.com/sigmak/exercise4_01/tree/2021-11-08-c-pointerexam01

    참고 : https://m.blog.naver.com/ahalinux/220836057791

    1. 소스 오류 캡쳐

    2. 소스 오류수정 후 컴파일 및 실행테스트

    3. 정리

    void pointer 형태는 자료형을 알수 없으니까 출력시 자료형 변환을 해줘야 원하는 결과가 나오는걸로 추측.


  • 안녕하세요. 꽥꽥한꾀꼬리입니다.

    void 타입을 받는 포인터에 char 타입의 포인터를 받을 수는 있습니다.

    하지만 p 로 %c를 출력한다는 것은 *p가 char type의 포인터여야 의미가 있습니다.

    따라서 아래와 같이 char* 를 붙여주면 정상적으로 A가 출력되는 것을 볼 수 있습니다.