What is a void pointer?
A void pointer is a C convention for “a raw address.” The compiler has no idea what type of object a void
pointer “really points to.” If you write
int *ip;
ip points to an int. If you write
void *p;
p doesn’t point to a void!
In C and C++, any time you need a void pointer, you can use another pointer type. For example, if you have
a char*, you can pass it to a function that expects a void*. You don’t even need to cast it. In C (but not
in C++), you can use a void* any time you need any kind of pointer, without casting. (In C++, you need to
cast it.)
Cross Reference:
VII.6: When is a void pointer used?
VII.27: Can math operations be performed on a void pointer?
XV.2: What is the difference between C++ and C?
A void pointer is a C convention for “a raw address.” The compiler has no idea what type of object a void
pointer “really points to.” If you write
int *ip;
ip points to an int. If you write
void *p;
p doesn’t point to a void!
In C and C++, any time you need a void pointer, you can use another pointer type. For example, if you have
a char*, you can pass it to a function that expects a void*. You don’t even need to cast it. In C (but not
in C++), you can use a void* any time you need any kind of pointer, without casting. (In C++, you need to
cast it.)
Cross Reference:
VII.6: When is a void pointer used?
VII.27: Can math operations be performed on a void pointer?
XV.2: What is the difference between C++ and C?
No comments:
Post a Comment