Что не так с этой функцией, которая, как ожидается, добавит строку и столбец в заданный 2D-массив? Матрица симметрична.функция для изменения 2d массива для добавления строки столбца с использованием realloc
void updateMatrix(double ***mat, int size, double *vec)
{ // mat is sizeXsize matrix, length of vec is size+1
*mat = (double**)realloc(*mat, (size + 1)*sizeof(double*));
(*mat)[size] = (double*)malloc((size + 1)*sizeof(double));
for(int i = 0; i < size + 1; i++) {
(*mat)[size][i] = vec[i];
}
for(int i = 0; i < size; i++) {
(*mat)[i] = (double*)realloc((*mat)[i], (size + 1)*sizeof(double));
(*mat)[i][size] = vec[i];
}
}
Трудно сказать, какие проблемы вы испытываете? У вас есть ошибки в построении? Ошибки во время выполнения или сбои? Неожиданные результаты? Что-то другое? –
Кроме того, не переназначайте указатель, который вы перераспределяете на себя, подумайте о том, что произойдет, если 'realloc' завершится с ошибкой и возвращает' NULL'. –
ошибка сегментации –