Hello, I'm stuck. I always getting weird error when executing this code (stripped down to minimum):
program project1; type TElement = record strr: String; end; TList = array of TElement; Plist = ^TList; TSetting = record list: Plist; end; const _List: array [0..1] of TElement = ( (strr: 'a'), (strr: 'b')); _Settings: array [0..0] of TSetting = ( (list: @_List)); procedure Display(a: TList); begin // <-------------------------------- line 23 writeln(' +++ ', a[0].strr); end; var setting: TSetting; begin setting := _Settings[0]; writeln(' ---- ', Assigned(setting.list), ' ', Length(setting.list^)); Display(setting.list^); end. In console I get: ---- TRUE 2 Runtime error 216 at $0000000000400BD5 $0000000000400BD5 INCLOCKED $0000000000400216 DISPLAY, line 23 of project1.lpr $0000000000400360 main, line 32 of project1.lpr $000000000042BE00 SYSENTRY, line 129 of system.pp $00000000004001D2 Why I getting that error? Something wrong with records and constant initialization? My system is: Linux 4.13.0-39-generic #44-Ubuntu SMP Thu Apr 5 14:25:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux FPC (from SVN): 3.1.1 [2018/02/21] for x86_64 -- Valdas Jankūnas -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus