Python3 передает список целых чисел в C и возвращает массив строк - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь передать трехмерный список целых чисел из Python3 в C, а затем вернуть 2d массив строк обратно в Python из C, используя Python C API.У меня есть вспомогательные функции, работающие так, чтобы procStrings вызывался.Однако мне трудно понять, как передавать / выводить массивы и получать элементы из массива.

  1. Как получить доступ к входным данным внутри входного трехмерного массива?
  2. Как мне создать выходной массив?(Если я его Malloc, где это освобождается?)
  3. Каков механизм возврата выходного 2d массива строк?

===============================================================

static PyObject* my_module_procStrings(PyObject* self, PyObject* args)
{
    int rows, cols;
    int ii, jj;
    PyObject* listObj;

    // Get the 2d list and parameters from Python call
    if( !PyArg_ParseTuples(args, "O!ii", &PyList_Type, &listObj, &rows, &cols ))
    {
        return NULL;
    }

    // Convert the input to a 3d array in C here?

    // Process the input array / create the output array
    for( ii = 0; ii < rows; ii++ )
    {
        for( jj = 0; jj < cols; jj++ )
        {
            // Code for setting new array entry based on entry from input array goes here

        }
    }

    // How is the new 2d string array returned ?

}
...