Witam,
Mam zadanie tego typu:
Stwórz zestaw procedur, które operującą na dynamicznie tworzonej tablicy typu integer. Procedury te to dodaj_element usun_ostatni_element ilosc_elementow. Tablica powinna zmieniać swoją wielkość co 10 elementów czyli początkowo mamy 10 elementów gdy chcemy dodać 11sty realokuje nam się do 20 elementów. Podobnie przy usuwaniu, jeżeli mamy mniej niż 11 elementów nadwyżkę można usunąć. Zademonstrować działanie w prostym programie.
Zrobiłem coś takiego:
type Ptab=^tab; tab=array [1..10] of integer;
Jak zwiększyć zakres tablicy o te 10 elementów? Czy może trzeba zrobić tak na przykład:
type Ptab=^tab; tab=array [1..5000] of integer;
Wtedy robię np tak na starcie programu?
var t:tab;
getmem(t,10*sizeof(integer));
a potem w procedurze coś w stylu:
getmem(t,((i div 10)*10*sizeof(integer)+10));
gdzie i to element który chcę wpisać?
Jak wtedy odwołać się do ostatniego elementu takiej tablicy?
SetLength
, mniejsza :P Już fixuję.