생활
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 번지에 저장된 값이 문자열이라는 것을 확실히 알고 있다면 캐스트 연산자를 사용해야 합니다.
장도연이 추천하는 아하!
앱으로 편리하게 사용해 보세요.