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가 출력되는 것을 볼 수 있습니다.