Здравствуйте, возникла проблема с python ffi
Есть простая динамическая библиотека на C
#include <stdio.h>
#include <stdlib.h>
struct Data {
int m;
};
void print_data(void* data)
{
struct Data* d = data;
printf("%x\n", d);
printf("%d\n", d->m); // (1)
}
void* create_data(void)
{
struct Data* d = malloc(sizeof(struct Data));
d->m = 54;
print_data(d);
return d;
}
И есть код на Python, который должен её вызывать
import ctypes
lib = ctypes.cdll.LoadLibrary("./libdata.so")
data = lib.create_data()
lib.print_data(data)
Вывод программы такой:
$ python test.py
17407210
54
17407210
Ошибка сегментирования (core dumped)
Правильно ли вообще я вызываю функции из библиотеки, и почему возникает ошибка?