Я застрял здесь. У меня есть матрица размера NxN, хранящаяся в двойном массиве. Затем я хочу удалить данный столбец, скажем, первый столбец. Поэтому я создал новый двойной массив размером NxN-1 и скопировал значения из первой матрицы во вторую, за исключением, конечно, 1-го столбца. Но тогда я хочу, чтобы первый массив был вторым массивом. Я путаюсь здесь.Удалить столбец из двойного массива
double matrix[N][N]
//fill up the matrix code here...
// remove first column of array
double newMatrix[N][N-1];
for(i = 0; i < N; i++){
for(j = 1; j < N; j++){
newMatrix[i][j-1] = matrix[i][j];
}
}
matrix = newMatrix; // how do I set this correctly? Do I need to realloc the first array?
Хорошо, если я динамически выделяю массив, тогда, когда я хочу удалить первый столбец, я могу просто сдвинуть значения, а затем освободить последний столбец. Это звучит как правильная логика? –
@jimjohnjim Возможно, вы сможете сделать что-то подобное в зависимости от того, как вы распределяете массив. Вы хотите удалить только столбцы или удалите строки? –
Мне нужно иногда удалять столбцы и удалять строки в другое время. Итак, чтобы удалить последнюю строку, я могу просто освободить (матрица [ROW-1]) правильно? Но то же самое не относится к столбцу, потому что каждая строка имеет последний столбец. Поэтому я пытаюсь, как только все сдвинется, перераспределите каждую матрицу [i] на 1 размер меньше. Имеет ли это смысл? –