python ctypes 指针 数组 取值_Python ctypes模块:扩展指针数组时进行NULL指针访问

我试图在项目中使用ctypes模块.我正在创建一个动态分配的“ max_entries”对数组,一旦该数组用完,我将创建一个新的大小为(1.5 * max_entries)的数组,并将内容从旧数组复制到新数组.

不幸的是,当我尝试访问此new_array的内容时,出现了“空指针访问”异常.相应的C代码似乎可以正常工作. (请参见下面的代码.)

我想知道我是否缺少有关ctypes模块工作方式的信息.任何帮助将不胜感激. (不确定这是否是适合我的问题的邮件列表.)

/谢谢!

#!/usr/bin/env python

from ctypes import *

import math

import random

class PAIR(Structure):

_fields_ = [("a", c_long),

("b", c_long)]

class MY_ARR(Structure):

_fields_ = [("no_entries", c_longlong),

("max_entries", c_longlong),

("entries", POINTER(POINTER(PAIR)))

]

def extendArray(x):

print "Extending Array"

print "Before: %d/%d" % (x.no_entries, x.max_entries)

old_arr = x.entries

# Create a new array

new_max_entries = int(math.ceil(1.5 * x.max_entries))<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值