Bonjour,
j'ai une petite fonction C que j'utilise depuis python:
Dans mon script python, je passe le pointeur d'un numpy.array en argument de la fonction, ce qui me permet de modifier depuis le code c les valeurs de mon array.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> void foo_func(long* x, int length) { int i; for (i = 0; i < length; i++) { x[i] = i*i; } }
Si maintenant je passe un array deux dimensions (ndim=2, shape=(2,3)), y a t il un moyen pour que dans le code C, j'accède aux éléments comme par double indice comme pour un tableau C multidimensions classique: tableau[1][2] ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np from ctypes import * mpa_lib = np.ctypeslib.load_library('mpa', '/home/.../mpa.so') array_1d_int = np.ctypeslib.ndpointer(dtype='int', ndim=1, flags='CONTIGUOUS') mpa_lib.foo_func.argtypes = [array_1d_int, c_int] mpa_lib.foo_func.restype = None out = np.arange(6) print out mpa_lib.foo_func(out, len(out)) print out
Merci d'avance
Partager