Я пытаюсь получить доступ к значениям двумерного массива, изначально переданного в виде массива указателей в функции.Кроме того, я хотел бы, чтобы эта функция возвращала двумерный массив со значениями, к которым я обращался и над которыми работал.
Я понимаю концепцию указателя, однако у меня возникли проблемы с концепцией двойного указателя 2D-массивов.Если я правильно понимаю, итерации по первому измерению массива указывают на позицию в памяти компьютера, которая сама указывает на другую позицию памяти в компьютере, где находится значение.Этот процесс 2 наведения представляет 2D.
Теперь в моем коде мне не удается получить доступ к значениям этого второго указателя, и я не понимаю, почему.
extern "C" double cfun(double **indatav, int rows, int cols)
{
double* *outdatav = new double*[rows];
for (int i=0; i < rows; i++){
outdatav[i] = new double*[cols];
}
for (int i=0; i < rows; i++){
for (int j=0; j < cols; j++){
outdatav[i][j] = indatav[i][j];
}
}
return outdatav;
}
Приведенный выше код вызывается через ctypes в Python, и поэтому он имеет extern...
Однако эквивалент в C++
будет состоять в удалении extern "C"
. Я потратил довольно много времени наэта проблема, и я не думаю, что смогу решить ее в одиночку, поэтому любая помощь будет высоко оценена.