When a variable is declared as being a pointer to type void it is known as a generic pointer. A pointer to void can store an address to any data type. Since you cannot have a variable of type void, the pointer will not point to any data and therefore cannot be dereferenced. It is still a pointer though, to use it you just have to cast it to another kind of pointer first. Hence the term Generic pointer.
This is very useful when you want a pointer to point to data of different types at different times.
Here is some code using a void pointer:
This is very useful when you want a pointer to point to data of different types at different times.
Here is some code using a void pointer:
int main() { int i; char c; void *the_data; i = 6; c = 'a'; the_data = &i; printf("the_data points to int %d\n", *(int*)the_data); the_data = &c; printf("the_data points to char %c\n", *(char*) the_data); return 0; }source
No comments:
Post a Comment