Отправка содержимого матрицы в одной функции в матрицу в другой функции - PullRequest
1 голос
/ 29 июня 2009

Как я могу передать содержимое матрицы символов в одной функции в другую матрицу с такими же размерами в другой функции?

Ответы [ 3 ]

3 голосов
/ 29 июня 2009

Вы можете скопировать содержимое матрицы в функцию memcpy.

/*
* mat: matrix to duplicate.
* rows: rows in mat.
* cols: cols in mat.
*/
void matdup(char mat[][],size_t rows,size_t cols){

    char dupmat[rows][cols];//duplicate matrix in stack.

    memcpy((void*)dupmat,(void*)mat,rows*cols);

    //do stuff with matrix here.
}

С этим вы можете иметь новую матрицу для использования внутри функции matdup.

2 голосов
/ 29 июня 2009

Поскольку вы, похоже, знаете, что матрицы имеют постоянный размер, задача так же проста, как передача двойного указателя (char** здесь) функции, которая ссылается на передаваемую матрицу.

Вам нужно будет передать измерения, если строки / столбцы переданной матрицы неизвестны, поскольку C не отслеживает размер массивов в памяти (они не более, чем указатели с синтаксическим сахаром).

1 голос
/ 29 июня 2009

Передаем указатель на первый элемент матрицы и размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...