У меня есть структура, которая использует двойные указатели, чтобы сделать матрицу:двойного указателя и выделение памяти
typedef struct
{
int rows, cols;
int** element;
}Matrix;
Я пишу функцию, которая инициализирует матрицу путем динамического выделения памяти для этих структур. Это код, который я написал, но я получаю ошибку сегментации, когда пытаюсь получить доступ к a-> rows, cols или element в другой функции или в основном.
void matrixInit (Matrix* ma, int m, int n)
{ int i;
ma=(Matrix*)malloc(sizeof(Matrix));
ma->rows=m;
ma->cols=n;
ma->element=malloc(m*sizeof(int*));
for(i=0;i<m;i++)
{ma->element[i]=malloc(n*sizeof(int));
}
}
Любая помощь пожалуйста?
Где декларация 'ma'? Почему у вас есть два аргумента с именем 'm'? – kviiri
есть. Прости. он был первоначально назван matx, и я изменил его на m, чтобы упростить его. – user3075598
Вы должны показать пример доступа, который вызывает ошибку сегментации. –