Casting a void pointer to a struct

89,245

Solution 1

(struct data*)pointer

will cast a pointer to void to a pointer to struct data.

Solution 2

Typecasting void pointer to a struct can be done in following

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

for this we can typecast to struct lets say u want to send this vptr as structure variable to some function

then

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

Note: we can typecast void pointer to any type, thats the main purpose of void pointers.

Share:
89,245
user1852050
Author by

user1852050

Updated on March 11, 2021

Comments

  • user1852050
    user1852050 about 3 years

    I started feeling comfortable with C and then I ran into type casting. If I have the following defined in an *.h file

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

    and this in another *.h file

    # define TYPE      void*
    

    How do I cast the void pointer to the struct so that I can use a variable "TYPE val" that's passed into functions? For example, if I want to utilize the value that TYPE val points to, how do I cast it so that I can pass that value to another functions?