Zdravím, měl bych dotaz ohledně realokace 2D pole v C.
Mám pole [x][4], kde x se stále zvětšuje, podle vstupů které přijdou z hlavní funkce programu. Po zadání 4 souřadnicí se zavolá následující funkce.
void addRectangle(int **rectangles, int count, int x1, int y1, int x2, int y2)
{
int **val = NULL; int i;
val = (int **)malloc(count * sizeof(int*));
for (i = 0; i < count; i++)
{
val[i] = (int*)malloc(4*sizeof(int));
if(i < count-1)
{
memcpy(val[i], rectangles[i],(4*sizeof(int)));
free(rectangles[i]);
}
}
free(rectangles);
rectangles = val;
}
Problém však je v tom, že to nefunguje :) při zadávání druhého řádku souřadnic se to tváří tak, jako by řadek [1] v poli neexistoval.
Díky za rady,
Melouch