Castor oil is a vegetable oil derived from the castor bean seed in its purest form. It is colorless, odorless and tasteless.
Encoding globally available pointers helps protect them from being exploited. The EncodePointer function obfuscates the pointer value with a secret so that it cannot be predicted by an external agent. The secret used by EncodePointer is different for each process. A pointer must be decoded before it can be used.
A void pointer is a pointer that has no associated data type with it. A void pointer can hold address of any type and can be typcasted to any type. int a = 10; char b = 'x'; void *p = &a; // void pointer holds address of int 'a' p = &b; // void pointer holds address of char 'b'. Advantage of void pointers: malloc() and calloc() return void * type and this allows these functions to be used to allocate memory of any data type (just because of void *)