uses of void

as the (non-) return value of a function that doesn't return anything
so it is a syntax error to have
	return myval;
one must have only
	return;
as (non-) type of pointer to raw memory,
as is returned from malloc(). One typically casts the pointer to a meaningful type:
	int *myIntArray = (int *)malloc( NUM_INTS * sizeof( int ) );
one often sees conversion to (void *) from a non-void *.
This makes sense if thereafter the pointer is to be regarded as a pointer to raw memory (as in free() or memcpy()). Otherwise it should be avoided.