programing

구조물에 빈 포인터 캐스팅

topblog 2023. 8. 16. 21:55
반응형

구조물에 빈 포인터 캐스팅

저는 C에 대해 편안함을 느끼기 시작했고, 그 후 타이프 캐스팅에 부딪혔습니다.*.h 파일에 다음이 정의되어 있는 경우

struct data {
    int value;
    char *label;
};

그리고 이것은 다른 *.h 파일에 있습니다.

# define TYPE      void*

함수로 전달된 변수 "TYPE 밸브"를 사용할 수 있도록 구조체에 보이드 포인터를 캐스팅하려면 어떻게 해야 합니까?예를 들어, TYPE val이 가리키는 값을 사용하려면 어떻게 캐스트해야 다른 함수에 해당 값을 전달할 수 있습니까?

(struct data*)pointer

의 포인터를 무효화하기 위해 포인터를 던집니다.struct data.

구조물에 대한 빈 공간 포인터를 타이핑하는 작업은 다음과 같이 수행할 수 있습니다.

void *vptr;
typedef struct data
{
   /* members */
} tdata;

이를 위해 우리는 cast to struct를 입력할 수 있습니다. 당신이 이 vptr as structure 변수를 어떤 함수로 보내고 싶다고 합시다.

그리고나서

void function (tdata *);
main ()
{
    /* here is your function which needs structure pointer 
       type casting void pointer to struct */
    
    function((tdata *) vptr);
}

참고: 우리는 보이드 포인터를 모든 유형에 타이핑할 수 있으며, 이것이 보이드 포인터의 주요 목적입니다.

언급URL : https://stackoverflow.com/questions/14946344/casting-a-void-pointer-to-a-struct

반응형