c언어 void형포인터 문자열 출력에 대해 질문드립니다.
void형 포인터에서 문자열을 출력하고자 합니다. 어떻게 해야 되나요?
하기 code처럼 하면 될까요?
#include <stdio.h> void main() { char *str="GOOD"; void *vpnt; vp=str; printf("%s\n",*vpnt); }55글자 더 채워주세요.
1개의 답변이 있어요!
- #include <stdio.h> #define MAX_NUM 100 void *allocMemory() { void *ptr = malloc(MAX_NUM); return ptr; } void main() { char *str="GOOD"; char *vpnt = allocMemory(); strcpy(vpnt, str); printf("%s\n", vpnt); free(vpnt); }
이렇게 하면 될것같습니다.
vp는 대상체가 정수형 변수라는 것을 모르기 때문에 *vp 로 이 번지에 들어있는 값을 읽을 수는 없습니다.
vp는 포인터 연산 자체도 안되구요.
만약 vp 번지에 저장된 값이 문자열이라는 것을 확실히 알고 있다면 캐스트 연산자를 사용해야 합니다.