The end of array mark is added by lua52.pas, if you read the source code...  My problem is solved if I remove the overloaded luaL_newlib function and use only the original pointer version, i.e.<div><br></div><div><font face="monospace">var lib: array of luaL_Reg;</font></div><div><font face="monospace">luaL_newlib(L, PluaL_Reg(lib));<br></font><br>It seems that while converting from dynamic array to pointer, the compiler knows to point to the first element of the array, not the structure.  <font color="#cc0000">Could anyone confirm this behavior</font>?</div><div><br></div><div>The remaining problems are: 1) why the lupas program works well even with the problematic overloaded version?  I tested on Windows 7 (32bit), both programs failed.  2) I will email the author of lua52.pas to investigate the overloaded functions, and personally I will suggest to not use overloading at all.</div><div><br></div><div>Shannon<br><br>

在 六, 12月 29, 2012 at 9:39 下午,leledumbo <leledumbo_cool@yahoo.co.id> 写道:<br>
<blockquote type="cite">Reading luaL_newlib documentation and lua52.pas implementation of it (it's a
<br>macro in the original C code), I see that you need a sentinel value to mark
<br>the end of the array by putting nil in the name part. I was already skeptic
<br>since the API doesn't mention the number of elements in the array as
<br>commonly required by a C function.
<br>
<br>
<br>
<br>--
<br>View this message in context: <a href="http://free-pascal-lazarus.989080.n3.nabble.com/Lazarus-SEGFAULT-difference-between-pointer-and-dynarray-tp4028296p4028310.html">http://free-pascal-lazarus.989080.n3.nabble.com/Lazarus-SEGFAULT-difference-between-pointer-and-dynarray-tp4028296p4028310.html</a>
<br>Sent from the Free Pascal - Lazarus mailing list archive at Nabble.com.
<br>
<br>--
<br>_______________________________________________
<br>Lazarus mailing list
<br>Lazarus@lists.lazarus.freepascal.org
<br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a>
<br></blockquote><br></div>