libusb_device, since the struct is not defined in libusb headers (only name is declared), as such the compiler doesn't know the size of the struct to allocate.