我现在有一个python回调函数,它使用ctypes库调用c函数。c函数需要一个指向一个结构的指针,例如animal_info_s,我实例化了这个结构并将它作为指向c函数的指针传递,它就可以工作了。我遇到的问题是,当我有多个线程调用回调时,我发现传递回来的信息在线程之间混淆了。在class animal_info_s(ctypes.Structure):

_fields_ = [('dog_type', ctypes.c_uint16),

('cat_type', ctypes.c_uint16),

('bird_type', ctypes.c_uint16),

('epoch_time', ctypes.c_uint16),

('more_information', ctypes.c_uint16)]

_mod = ctypes.cdll.LoadLibrary('bbuintflib.dll')

animal_info_s = animal_info_s()

get_animal_data = _mod.get_animal_data

get_animal_data.argtypes = [ctypes.POINTER(animal_info_s)]

get_animal_data.restype = ctypes.c_int

# Python Callback

def GetAnimalData():

animal_info_p = animal_info_s

res = get_animal_data(animal_info_p)

if (res != 0):

print("Failed to get animal info")

return

print ("Receive Time - %d\nDog: %d\nCat: %d\nBird:%d" %(animal_info_p.epoch_time,

animal_info_p.dog_type,

animal_info_p.cat_type,

animal_info_p.bird_type))

我想当我实例化这个结构时,它每次都使用相同的内存位置。如何为每个调用回调的线程创建一个新的内存位置?在

python申请内存函数_Python Ctypes c函数的内存分配相关推荐

  1. python编程函数_python编程中函数和参数你必须知道的

    今天我们先聊少一点,就聊聊函数是什么和函数的参数,以及对这两个东西的思考 起源于抽象 在程序员写代码的时候,通常都会提到一个词叫抽象, 很多人都知道在面向对象中,将一个对象抽象为一个类,其实这就是我们 ...

  2. python计算平方用map函数_python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)...

    1.用我们之前学过的求一下平方(只有一个列表) #求平方 num=[1,5,6,2,7,8] a=[]for n innum: a.append(n**2)print(a) C:python35pyt ...

  3. python如何自定义函数_python如何自定义函数_后端开发

    c语言特点是什么_后端开发 c语言特点是:1.语言简洁.紧凑,使用方便.灵活:2.运算符丰富:3.数据结构丰富,具有现代化语言的各种数据结构:4.具有结构化的控制语句:5.语法限制不太严度格,程序设计 ...

  4. python中execute函数_python中的函数是如何使用的?

    欢迎关注「issnail」感谢! "一起学习,一起成长!" 1.定义函数与调用函数 定义python函数:依次输入def.函数名.带有函数参数的圆括号,最后紧跟一个冒号(:) 函数 ...

  5. python中非可选参数_python基础教程函数参数

    python里有很多的内置函数给我们的工作带来了很多发便利,在我们实现某些功能或者优化代码的时候,可以自己定义一个函数,同时我们在定义一个类的时候也会用到函数的一些知识去构造一个方法,这里就涉及到一些 ...

  6. python跨文件调用lambda函数_python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件...

    1 语法2 以下是round()方法的语法:3 4 round( x [, n] )5 参数6 x --这是一个数值表达式7 8 n --这也是一个数值表达式9 10 返回值11 该方法返回 x 的小 ...

  7. python如何自定义函数_python基础之函数(自定义函数)

    函数: 函数的定义: 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数. ...

  8. python的高级函数_Python的高级函数

    Python的高级函数 1. map函数 map(func, *itertables) 对itertables中的每个元素使用func,当最短的itertable结束时便停止.map可以传入多个ite ...

  9. python程序一定要有主函数_Python 没有main函数的原因

    毫无疑问 Python 中没有所谓的 main 入口函数,但是网上经常看到一些文章提"Python 的 main 函数"."建议写 main 函数"-- 有些人 ...

最新文章

  1. linux定时器(crontab)实例
  2. 我的春招求职经验分享(已拿阿里京东网易等 5 个 offer)
  3. python 魔法方法常用_Python魔法方法指南
  4. 数据结构之 栈与队列(一)
  5. 拉格朗日乘数法_拉格朗日乘数法介绍(不含证明)
  6. STC51-1602、12232、12864液晶
  7. python语言入门-python语言入门资料
  8. nfs--samba
  9. 数据结构题集c语言版答案严蔚敏第二章,数据结构习题集答案(C语言版严蔚敏)2(可编辑).doc...
  10. 国稻种芯百团计划行动 丰收节贸促会·黎志康:惠及亚非18国家
  11. 中国云计算的发展历史
  12. 麻省理工学院公开课:经典力学习题课
  13. 求一个序列所有区间不同数的个数之和
  14. Java练习(十九):编写代码,实现AOP的@Around操作 (两种写法)
  15. 初识 STM32和STM32F407简介
  16. 笔记本ssd固态硬盘的M.2、SATA、PCI-E和NVMe的区别
  17. 魔兽地图编辑器插件YDWE的使用与基本设置5 触发编辑器2 时间事件
  18. error C2061: 语法错误: 标识符“acosf”
  19. 一文带你了解Java8之Stream
  20. OPENCV CvMat的使用

热门文章

  1. Websocket总结
  2. jquery高版本全选与全部选无法正常工作
  3. java并发编程(2)——wait和notify解析
  4. リアルタイム3Dニャンニャン 汉化补丁
  5. SharePoint:如何设置某个页面必须由站点集管理员打开
  6. PostgreSQL的QT驱动编译
  7. 洛谷 P1070 道路游戏(noip 2009 普及组 第四题)
  8. 【Python问题解决】关于解决python3.x无法使用PIL库的解决方法
  9. [T-ARA][Goodbye, OK]
  10. linux安装jdk和tomcat命令