【发布时间】:2017-08-04 09:16:01
【问题描述】:
我想按照下面的操作将 python 对象转换为 cython 结构,但它不会将 simres[1] 的值分配给 resulta[x].cpt1
cdef struct resultaStructure:
double score
char **cpt1
simRes = [1.0,
['http://bioontology.org/projects/ontologies/fma/fmaOwlDlComponent_2_0#Abdomen',
'Abdomen']]
cdef x = 0
cdef resultaStructure *resulta = <resultaStructure *> malloc(sizeof(resultaStructure)*labelsSourceTaille)
resulta[x].score = simRes[0]
print("score : ",resulta[0].score)
resulta[x].cpt1 = <char**> malloc (sizeof (char**)*2)
print('2')
resulta[x].cpt1[0] = <char*> malloc (sizeof (char)*simRes[1][0].__len__()+1)
print('3')
resulta[x].cpt1[1] = <char*> malloc (sizeof (char)*simRes[1][1].__len__()+1)
print('4')
resulta[x].cpt1[0] = <char*> simRes[1][0]
print('5')
resulta[x].cpt1[1] = <char*> simRes[1][1]
print('6')
print("cpt1 0 : ",resulta[0].cpt1[0])
print("cpt1 1 : ",resulta[0].cpt1[1])
这是结果
('score :', 1.0)
2
3
4
【问题讨论】: