python用ctypes调用C库文件,并且实现字符串传入传出。。。。。

本文介绍如何利用Python与C++的结合,通过GCC编译器实现字符串数组的动态处理,并通过ctypes模块调用C++函数,展示跨语言编程的灵活性与高效性。案例中涉及字符串数组的创建、修改与调用C++函数进行处理,体现了Python的强大功能和与底层语言交互的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>

void arrtest(char *p[],int c)
{
    int i;
    for (i = 0; i < c; i++) {
        printf("%s \n", p[i]);
        sprintf(p[i],"re%d",i); 
    }

    return;
}

gcc arrtest.c -fPIC -shared -o arr.so


from ctypes import *
array_type = c_char_p * 4
names = array_type()

names[0]="test1"
names[1]="test2"
names[2]="test3"
names[3]="test4"
api = CDLL('./arr.so')

api.arrtest(names,4)
for t in names:
	print t



python太强了,这样玩都可以,,,,服了

GCC4.6  +  PYTHON 2.7通过

刚开始尝试写,搜索了下,,,


艹  看来不少人被这个返回恶心到了,最会也没搞定 return个字符串数组   就这样曲线返回了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值