Lazarus - nefunkčná funkcia odkázaná smerníkom na funkciu
V prílohe je verzia pre Delphi, ktorá funguje a verzia pre Lazarus, ktorá nefunguje, hoci je kompilovaná v móde Delphi. Úprava pre FPC je jednoduchá, stačí zrušiť komentáre v zakomentovaných častiach. Správa sa to ale rovnako. Funkcii compare sa odovzdajú 3 parametre: Text, hľadaná vzorka a dĺžka. Po vojdení do funkcie obsahuje prvý parameter to čo mal obsahovať druhý a druhý obsahuje to čo mal obsahovať tretí. Prvý sa stratí a tretí obsahuje nulu. Keďže druhý parameter je PChar a obsahuje dĺžku 3, program to vyhodnotí ako chybnú adresu parametra 2 (keďže sa parametre posunuli) a program havaruje kvôli nedovolenému prístupu do pamäte. Vedel by mi niekto vysvetliť, čo robím zle, prípadne posúdiť, či to nie je bug, ktorý treba nahlásiť vývojárom Lazara?