我曾嘗試使用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