Передача указателей на 2D-массивы в C - PullRequest
1 голос
/ 06 мая 2020

По этому топу c много вопросов, но, похоже, ни один из них не отвечает на мой вопрос: - Я хочу построить своего рода «массив или массив», например матрицу. Это мой примерный случай

int A[Things][Elements];
int B[Things][Elements];
int C[Things][Elements];

for (uint8_t i=0; i < Things; i++)
    myFunct(C[i], A[i], B[i], ....);

/******************/
/***** Where: *****/

void myFunct(int *O, int* iA, int* iB, ....)
{
    for (uint8_t j=0; j < Elements; j++)
        O[j] = iA[j] + iB[j];
}

Я знаю, что приведенный выше код не имеет смысла, но это просто супер простой пример того, что я пытаюсь сделать. Во время тестирования я увидел, что первый (i = 0) выполнен правильно, а следующие (i> 0) неверны. Вероятно, я ошибся в определении входов myFunct (), но не могу понять, что именно. Я знаю, что могу сделать i*Elements + j и поиграть с указателями, но я хотел бы хоть раз иметь более читаемый код.

Спасибо за ответы, Ev3.

...