В данный момент вы пытаетесь узнать размер по адресу void. Если вы хотите узнать размер пустого указателя, попробуйте вместо этого: sizeof (void *).
printf("pointer: %zu\n", sizeof(void*));
должен делать то, что вы хотите. Используйте% zu, а не% d, так как указатель является значением без знака, а не десятичным числом.
Edit: Что-то еще, о чем я только подумал в первый раз, зависит ли компилятор% zu? Нужно ли действовать по-другому на 32-битной или 64-битной архитектуре?