Ha ezt a kérdést tegnap 18h előtt teszed fel, tudtam volna konkrétumokkal segíteni :D
Dinamikus tömb foglalása esetén csak TE tudod mekkora a tömb (illetve ha kiolvasod a foglalás méretét a heap allokátor táblázatából:)
Van egy ökölszabály jellegű megoldás, hogy ha növelni kell a tömb méretét, mindig duplázol. Persze tárolod a tömb méretét és az utolsó elem indexét is. Ekkor csak log n lesz a foglalások időigénye.
Amúgymeg:
double* array = calloc(1, sizeof(double));
double d = 3.1415;
int size=0, last=0;
while (yourdoublereader(&d))
{
if(last == size-1) /* elobb utolso helyre irtunk */
{
size *= 2;
array = realloc(array, size*sizeof(double));
}
last++;
array[last] = d;
}
last++;
array = realloc(array, last*sizeof(double));
/* Innentol a tomb akkora, amekkoranak kene lennie */
Try, modify.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.