The void pointer in C is a pointer which is not associated with any data types. It points to some data location in the storage means points to the address of variables. It is also called general purpose pointer. In C, malloc() and calloc() functions return void * or generic pointers.
It has some limitations −
1) Pointer arithmetic is not possible with void pointer due to its concrete size.
2) It can’t be used as dereferenced.
Begin Declare a of the integer datatype. Initialize a = 7. Declare b of the float datatype. Initialize b = 7.6. Declare a pointer p as void. Initialize p pointer to a. Print “Integer variable is”. Print the value of a using pointer p. Initialize p pointer to b. Print “Float variable is”. Print the value of b using pointer p End.
Here is a simple example −
#include<stdlib.h> int main() { int a = 7; float b = 7.6; void *p; p = &a; printf("Integer variable is = %d", *( (int*) p) ); p = &b; printf("\nFloat variable is = %f", *( (float*) p) ); return 0; }
Integer variable is = 7 Float variable is = 7.600000