python3利用ctypes传入一个字符串类型的列表方法

yipeiwu_com7年前Python基础

c语言里:c_p.c

#include <stdio.h>

void get_str_list(int n, char *b[2])
{
 printf("in c start");
 for(int i=0;i<n;i++)
 {
  printf("%s", *(b+i));
  printf("\n");
 }
 printf("in c end");
}

编译为动态库的命令:

gcc -o hello1.so -shared -fPIC c_p.c

python里:p_c.py

from ctypes import *
ll = cdll.LoadLibrary
lib = ll("./12_23_ctype_list/hello1.so")
n = 3
str1 = c_char_p(bytes("nihao", 'utf-8'))
str2 = c_char_p(bytes("shijie", 'utf-8'))

a = (c_char_p*2)(str1, str2)
lib.get_str_list(2, a)

输出

in c startnihao
shijie
in c end

以上这篇python3利用ctypes传入一个字符串类型的列表方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python解析xml简单示例

本文实例讲述了python解析xml的方法。分享给大家供大家参考,具体如下: xml是除了json之外另外一个比较常用的用来做为数据交换的载体格式。对于一些比较固定的数据,直接保存在xm...

python实现感知机线性分类模型示例代码

python实现感知机线性分类模型示例代码

前言 感知器是分类的线性分类模型,其中输入为实例的特征向量,输出为实例的类别,取+1或-1的值作为正类或负类。感知器对应于输入空间中对输入特征进行分类的超平面,属于判别模型。 通过梯度...

pandas条件组合筛选和按范围筛选的示例代码

pandas条件组合筛选和按范围筛选的示例代码

1、从记录中选出所有fault_code列的值在fault_list= [487, 479, 500, 505]这个范围内的记录 record2=record[record...

python将三维数组展开成二维数组的实现

以前写过一篇:python实现把两个二维array叠加成三维array示例 这篇文章尝试用“曲线救国”的方法来解决二维数组叠加成三维数组的问题。 但天道有轮回,苍天绕过谁。好不容易把数组...

python使用numpy读取、保存txt数据的实例

python使用numpy读取、保存txt数据的实例

1.首先生成array数组 import numpy as np a = np.random.rand(5,5) print(a) 结果: array([[0.17374613...