我用C语言写了一段计算两个python列表相似度的代码,可以使用
python2.7代码(代码正常):
import ctypes
list1 = [[]...]
list2 = [[]...]
tmp = ctypes.cdll.LoadLibrary('./main.so')
lib = tmp.sim
lib.restype = ctypes.c_double
for a in list1:
for b in list2:
sim = lib((ctypes.c_char_p * len(a))(*a), (ctypes.c_char_p * len(b))(*b), ctypes.c_int(len(a)), ctypes.c_int(len(b)))
print sim
当列表比较小的时候程序运行正常,但是当列表比较大的时候,程序运行错误,
C语言的报错信息是:段错误
python的报错信息:Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
试过网上说的方法,没有解决
望大佬能指点一二
太大了溢出了?大的时候有多大啊