我曾尝试使用python对象与蟒蛇进行沟通ç..在C面我值存储到一个指针变量..当我回到它,我在Python端得到一个Python对象..是有可能检索“python对象中的那些指针值”在python方面?如何从python对象检索值?
test1.c文件
#include <stdio.h>
#include <stdlib.h>
int *getval() {
int *var;
int *var1;
int i;
var1=var;
*var=5;
var++;
*var=6;
return var1;
}
test1.c file
#include <Python.h>
static PyObject * getvals(PyObject * self, PyObject * args)
{
int *x;
x=getval();
PyObject * test = PyCapsule_New((int *)x, "int", NULL);
return test;
}
python file
import test1
x=test1.getvals()
something like this .. I want to get the values of the var file I have assigned in test.c in python file.
我已经修改了这个请我怎么能retrive值蟒蛇侧
test.c
uint64_t * getvar()
{
int i=0;
uint64_t * vars=(uint64_t *)malloc(sizeof(uint64_t));
for(i=0;i<3;i++)
{
var[i]=i;
printf("%llu\n",var[i]);
}
return vars;
}
test1.c
static PyObject * getlist(PyObject * self, PyObject * args)
{
int i;
uint64_t * mylist;
mylist=getvar();
for(i=0;i<3;i++)
printf("%llu\n",mylist[i]);
PyObject * my_list = PyCapsule_New((void *)my_list, "uint64_t", NULL);
return my_list;
}
test.py
import test1
x=test.getvals()
print x
在编译的C文件,我得到这样的警告
格式'%llu'需要类型为'long long unsigned int'的参数,但 参数2的类型为'uint64 _t” [-Wformat]
警告:‘乏乏’可在此功能 [-Wuninitialized]
但仍值获得印刷,,我怎么能初始化使用未初始化‘’?如何检索test.c的分配值test.py
请建议..
添加代码,请;)请记住,英语是不是完全不区分大小写... – 2012-03-31 13:05:05
使用malloc去除,可以使用这个功能初始化警告“瓦尔” [-Wuninitialized] – ranjan 2012-04-01 07:16:04