wskaźnik na tablice i rezerwacja pamięci z innego modu

0

mam typ:
tab1 = array [0..0] of Cardinal;

i w innym typie (będącym recordem) mam pointera do powyższej tablicy:
hej = record
...
wsk:^tab1;
...
end;

te typy są zainicjowane w dodatkowym, stworzonym przeze mnie module... a w programie, który z tego korzysta, zainicjowałem zmienną typu "hej" zakładam że:
hej1: hej;

i teraz robię w programie:
getmem(hej1.wsk, ileś_tam_bajtów);
i wszystko gra...
ale: napisałem procedurę rezerwującą pamięć i umieściłem ją w tym module w którym zainicjowałem typy, a nie w głównym programie... i kicha... z poziomu tego modułu pamięć nie chce się zarezerwować... procedurę wywołuje się z parametrem typu "hej" czyli w tym wypadku wywołuję procedurę z parametrem "hej1", a w prodcedurze jest:
getmem(parametr.wsk, ileś_tam_bajtów);

i nic... co ciekawe nawet nie ma tu błędu... pojawia się błąd dopiero jak próbuję przypisać jakąs wartość jednej z komórek dynamicznej tablicy...
czy ktoś wie jak zarezerwować pamięć dla zmiennej z poziomu dodatkowego modułu?

0

Jakim dodatkowym module? Bibliotece dll, czy drugim procesie, czy może z kolei u Ciebie drugi modół to procedura, gdzie lokalnie przypisujesz zmiennej obszar pamięci. Jeżeli napiszesz wszystko wyraźniej to będzie łatwiej Ci pomóc

0

moduł = unit...
ale jak to rozwiązać... to niestety nie wiem...

0

dobra.. dzięki za trud...
zamiast podawać jako parametr całą zmienną... podałem tylko wskaźnik do niej i działa...

0

bo zgubiłeś słówko var w deklaracji parametrów funkcji, i to pole, które się zmieniało po przyznaniu pamięci (wskaźnik), to była kopia, a nie oryginał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1