Разве это не указатель на указатель на DNS_RECORD
? Это означает, что вы должны инициализировать rr как POINTER(DNS_RECORD)()
и передать его по ссылке: ctypes.byref(rr)
.
Обновление : Но я думаю, что проблема, которую вы видите, заключается в передаче server_arr
: вы передаете структуру с первым полем, равным 0x00000001
вместо ссылки на эту структуру, поэтому код C пытается разыменоваться 1010 * поле и дает вам нарушение прав доступа. Эту же технику следует использовать и для server_arr
.