У вас есть две проблемы в вашем коде: вы делаете userpointer ctypes.c_void_p типом , а не его экземпляром, и вы передаете void *, который является userpointer, напрямую в posix_memalign, вместо void **, что требуется для posix_memalign. Следующее будет делать то, что вы хотите:
import ctypes
from ctypes.util import find_library
libc = ctypes.CDLL(find_library('c'))
userpointer = ctypes.c_void_p()
sizeimage = 320*240*2
if libc.posix_memalign(ctypes.byref(userpointer), libc.getpagesize(),
sizeimage) != 0:
raise Exception('ENOMEM')