我在C代码中有以下变量,我将一些变量存储在二维数组中。我正在尝试用python访问这个数组。我正在跟踪info..How我可以从该数组中检索数据吗
module.c
uin32_t array_vaiable[10][100]module.h
extern uint32_t array_variable[10][100]module.i
%module mod
%{
#include "module.h"
%}
%include "typemaps.i"
%include "module.h"swig -python module.i
<Swig Object of type 'int (*)[100]'>发布于 2017-04-11 05:53:03
一般来说,公开全局变量不是一个好主意,你应该使用一个函数来公开静态信息。
一个非常粗糙的解决方案:
module.h
extern uint32_t array_variable[10][100]
uint32_t* cast(uint32_t (*a)[100]);module.cpp
uint32_t array_variable[10][100] = {{}};
uint32_t* cast(uint32_t (*a)[100]) {
return &(a[9][99]);
}module.i
%module example
%{
#include "test.h"
%}
%include "stdint.i"
%include "cpointer.i"
%pointer_functions(uint32_t, uint32p);
%include "test.h"并在Python中执行以下操作以访问第一个元素
import example
example.uint32p_assign(example.cast(example.cvar.array_variable),2)
example.uint32p_value(example.cast(example.cvar.array_variable))如果您想访问其他元素,可以在将2D数组转换为1D数组之后使用carrays.i。
https://stackoverflow.com/questions/43244166
复制相似问题