Void Pointer

Home / C Programming / Void Pointer

Void Pointer


In C, a void pointer (also known as a generic pointer) is a special type of pointer that can point to objects of any data type. It provides a way to handle memory addresses without specifying the type of data that the pointer points to. However, since the compiler doesn't know the size and type of the data pointed to by a void pointer, you cannot directly dereference it or perform pointer arithmetic on it without proper casting.

The syntax for declaring and using a void pointer is as follows:

void *ptr;

Here are some key points to keep in mind while working with void pointers:

Assigning a value to a void pointer:

You can assign the address of any data type to a void pointer without any explicit casting.


Dereferencing a void pointer:

You cannot directly dereference a void pointer, as the compiler doesn't know the data type it points to. You must cast the void pointer to the appropriate type before dereferencing it.


Output: 42

Function returning a void pointer:

A function can return a void pointer to provide flexibility in returning different data types. Similar to dereferencing, when using the returned void pointer, you need to cast it to the appropriate data type.


While void pointers offer flexibility, they also come with the risk of type errors. Be cautious when using void pointers, and ensure proper casting and handling of data types to avoid undefined behavior or memory issues.