如何创建一个返回数组的函数?我试过这个
const int WIDTH=11;
const int HEIGHT=11;
int main() {
char A[WIDTH][HEIGHT];
A=rand_grid(WIDTH,HEIGHT);
return 0;
}
// Initializes a random board.
char[][] rand_grid(int i, int k) {
char* A[i][k];
for(j=0;j<i;++j) {
for(l=0;l<k;++l) {
A[j][l]=ran(10);
}
}
return A;
}
// Returns a random number from the set {0,...,9}.
int ran(int i) {
srand((unsigned int) time(0));
return(rand()%10);
}
Run Code Online (Sandbox Code Playgroud) 我想访问一个C函数,它返回一个包含double数组的结构(其中这些数组的长度由结构的其他int成员给出)来自python.声明是
typedef struct {
int dim;
int vertices;
int quadrature_degree;
int polynomial_degree;
int ngi;
int quadrature_familiy;
double *weight; /* 1D: ngi */
double *l; /* 2D: ngi * dim */
double *n; /* 2D: ngi * vertices */
double *dn; /* 3D: ngi * vertices * dim */
} element;
extern void get_element(int dim, int vertices, int quad_degree, int poly_degree, element* e);
Run Code Online (Sandbox Code Playgroud)
重要的是我希望能够以double*正确形状的NumPy数组访问所有成员(即dn应该可以作为3D数组访问).
简单地SWIG包装这给了我很好的结构,但所有double*成员都<Swig Object of type 'double *' at 0x348c8a0>使它们无用.我玩过NumPy SWIG接口文件,但无法使任何类型的图像 …