Python llama a un programa C++. ¿Cómo devuelve el programa C++ una matriz a Python?
C/C++ no puede devolver directamente una matriz. Esto se debe a que en C/C++, las matrices no son un tipo y, por lo tanto, no se pueden devolver directamente.
Generalmente existen dos métodos para devolver una matriz.
El primer método:
Devuelve un puntero a una matriz, por ejemplo char (*retArray)[10] declara una función retArray, que puede devolver un puntero a una matriz con 10 char Matriz de elementos
Segundo método:
Si no desea devolver una matriz en forma de puntero, puede devolver una estructura. Esta forma es relativamente segura y puede evitar pérdidas de memoria causadas por olvidar soltar el puntero, así como errores causados por el acceso a punteros colgantes. Pero la desventaja es que debido a que la estructura se copia primero y luego se devuelve, si la estructura es grande, afectará la eficiencia y ocupará una gran cantidad de memoria.
Esta es una limitación de C, y este también es el caso cuando Python llama a C