создать 2D динамический массив:Изменить размер 2D динамического массива в C
a = (int**)calloc(n-1, sizeof(int));
for(i = 0; i < (n-1); i++)
a[i] = (int*)calloc(n, sizeof(int));
Тогда мне нужно изменить его размер (добавить новую строку):
a = (int**)realloc(a, n);
a[n] = (int*)calloc(n, sizeof(int));
Но когда я хочу напечатать мой массив,
void Print(void){
int i, j;
for(i = 0; i < (n-1); i++){
for(j = 0; j < n; j++){
printf("%d\t", arr[i][j]);
}
printf("\n");
}
}
У меня есть нарушение прав доступа. Первая строка напечатана ... Что мне делать?
OMG - это плохо сломано, прежде чем вы попытаетесь изменить размер - вы принимаете sizeof (int) == sizeof (int *) –