通过python / ctypes获取内存范围的结束内存地址

时间:2015-04-07 15:51:08

标签: python unit-testing ctypes python-2.5

我在python中为(硬件)C接口创建一个非常基本的(覆盖)单元测试。

该C接口的功能需要内存地址,因为它直接与内存通信。

该功能的原型是:

void function( ulong startAddress, ulong endAddress, ulong curAddress, nofPaddingElements )

startAddress,endAddress和curAddress基本上是结构数组的内存地址。

在网上(和stackoverflow ;-))我发现如果我想用ctypes做某事的引用,那就是我使用的。

对于startAddress和curAddress,可以跟随http://starship.python.net/crew/theller/ctypes/tutorial.html#arrayshttp://starship.python.net/crew/theller/ctypes/tutorial.html#pointers获取指向第一个条目地址的指针和指向当前条目地址的指针。

但是endAddress是问题所在 它是需要由函数分配的存储区的真实结束地址 因此,对于10长的整数数组,它将意味着i [10]'的地址。如果你理解我的意思(实际上,我可以使用i [0]直到我[9],但我的意思是我[10]第10个条目结束的地址/第11个条目将开始==>数组的结束地址。)

有人知道如何通过python / ctypes获取这个结束地址吗?

(重构C代码,因此它不需要结束地址,不是一个选项,它已经正常工作多年,它只有没有单元测试)

哦顺便问一下。我目前使用的软件版本是使用python 2.5(后来的版本使用python 2.7,但首先需要在此版本上开发)

0 个答案:

没有答案