# #c #python-3.x #go
Вопрос:
Поэтому я создал код golang, чтобы передать значение в структуру C, а затем вернуть его в указатель, чтобы я мог получить значение в py. Но могу ли я получить значения из структуры C в py? Если да, то как я могу? Моя главная цель-передать несколько значений из go в структуру C, а затем получить эти значения в py. Кроме того, как правильно это сделать без каких-либо утечек памяти?
Вот мой код перехода:
package main
/*
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
typedef struct Resp {
char *response;
char *responsetwo;
} Resp;
void fill(Resp *r) {
printf("Original value: %sn", r->response);
}
*/
import "C"
import (
"unsafe"
)
func body_string(body string, body_two string) unsafe.Pointer {
sb := C.CString(body)
sb_two := C.CString(body_two)
// adding it to the C struct
return amp;C.Resp{
response: sb,
responsetwo: sb_two,
}
}
Я не уверен, что это наиболее эффективный способ, но подходит ли это для больших текстовых значений? Спасибо.
Комментарии:
1. Как вы собираетесь сделать это на Python? По памяти? Из досье?
2. Нет, не из досье. По памяти.
3. каждая реализация python содержит пояснения о том, как использовать ее FFI.
4. Почему на Земле (или в космосе, если на то пошло) вы используете Go в качестве посредника между C и Python? (Используйте cpython, и вся проблема исчезнет.)
5. Я пытаюсь передать несколько значений go в python через привязки c без каких-либо утечек памяти.