int main()
{
        void *p;
        char ch = 10;
        int i = 1000;
        int input;

        input = getchar();
        if(input == 'C')
        {
                p = (char*)&ch;
                printf("%d\n", *(char*)p);
        }
        else
        {
                p = (int*)&i;
                printf("%d\n", *(int*)p);
        }
        scanf(&ch);
        return 0;
}

안녕하세요, 작년 프로그래머가 되고 싶다고 글 남겼던 노아라는 사람입니다.
운좋게 대구 게임 아카데미 8기 과정에 합격해서 프로그래밍을 배우고 있는데, pointer를 배우다가 궁금한게 생겼습니다.
위의 코드는 제가 pointer를 배울때 짜놓은 것으로, 입력된 값에 따라 void pointer가 데이터 형식을 바뀌는 것을 알아보기 위한겁니다.
보통 pointer는 *이면 pointer가 가리키는 대상의 메모리 주소, &이면 pointer가 가리키는 대상의 값으로 기억하고 있습니다.
그리고 pointer가 가리킬 대상이 pointer와 같은 데이터 형식이어야 하는데, void에 pointer가 적용되면, 비주얼 스튜디오의
디버거에도 아무런 경고메시지도 없이 cast해서 가리킬 수가 있더군요.

void pointer, 요 녀석의 정체와 용도를 알고 싶습니다.

프로그래밍 의욕상실...