I modified the following code
void aligned_free(void *p) {
free(((void**) p)[-1]);
}
to
void aligned_free(void **p) {
free((p)[-1]);
}
with function call
char* a = (char*)aligned_malloc(10000,64);
aligned_free(a);
and the compiler gives the error "cannot convert from char* to void**". Why the pointer char* cannot be converted to void**, but void* is OK?