#include <stdio.h>
#include <stdlib.h>
void addElements(int *** first) {
int ** go = *first;
int w; //ilosc elementow w wierszu
scanf_s("%d", &w);
if (**go == 0) {
go = (int**)realloc(go, 2 * (sizeof(int*)));
*(go + 1) = (int*)malloc((w + 1) * sizeof(int));
*(*go + 1) = w;
int value;
int i;
for (i = 1; i < w + 1; i++) {
scanf_s("%d", &value);
*((*go + 1) + i) = value;
}
**go = 1;
}
else {
(**go)++;
int line = **go;
go = (int**)realloc(go, (line +1)* (sizeof(int*))); //TUTAJ SIE WYWALA
}
}
int main() {
int ** first = (int**)malloc(sizeof(int*));
*first = (int*)malloc(sizeof(int));
**first = 0; // tutaj trzymam ilosc wierszy tablicy
while (1) {
addElements(&first);
}
return 0;
}
Program ma za zadanie manipulować dwuwymiarową strukturą liczb całkowitych, konkretnie dodać na początek struktury wiersz o dodanej liczbie elementów i ich wartościach. Program nie jest jeszcze dokończony. Jeśli chodzi o dodanie pierwszego wiersza działa dobrze, ale przy próbie dodania kolejnego wyskakuje błąd: " program.exe has triggered a breakpoint " I strzałka wskazuje na funkcje realloc (tam gdzie widnieje komentarz "tutaj wywala" ).
Dlaczego to nie działa?