使用python扩展C语言传参时,涉及到指针的问题
天蓬老师
天蓬老师 2017-04-17 17:44:15
0
1
395

最近在写python扩展C的相关代码,遇到一个问题,专门上来求助!
是有关于python扩展C传参的问题,如果传的参数是整形和字符串,很容易处理,但是遇到二级指针怎么办?
如下例子中:该如何写关于 alloc_mem 函数的扩展模块呢?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char* alloc_mem(char **p)
{
    *p = (char *)malloc(100);
    if (*p == NULL)
        return NULL;
    strcpy(*p, "hello python!");
    return *p;
}

int main(int argc, char *argv[])
{
    char *p;

    printf("%s\n", alloc_mem(&p));
    return;
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(1)
黄舟

당시에는 막다른 골목에 부딪혔을지 모르지만 나중에는 댓글에서 언급한 PyObject인 Python에서 C 모듈을 확장하는 방법을 사용하여 문제를 해결했습니다.
즉, int 또는 char * 매개변수가 계속 사용되지만 추가 작업은 C 함수 내에서 완료됩니다.
안내해주신 flyzero, garfileo, araraloren에게 다시 한 번 감사드립니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿