<div dir="ltr"><div dir="ltr"><div>Hi,</div><div>try and change &A and &B to just A and B. Like:<span style="color:rgb(121,94,38)"> enif_get_string</span>(env, <span style="color:rgb(0,16,128)">argv</span>[<span style="color:rgb(9,134,88)">0</span>], A, <span style="color:rgb(9,134,88)">50</span>, ERL_NIF_LATIN1);</div></div><div><br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Den tis 31 mars 2020 kl 20:08 skrev I Gusti Ngurah Oka Prinarjaya <<a href="mailto:okaprinarjaya@gmail.com">okaprinarjaya@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I learn to create a NIF. Inside my NIF, i need to receive two value, each value is fromĀ paramA, and paramB.</div><div><br></div><div>type of value that i want to receive is string value. I need your help to review my codeĀ </div><div>i afraid my code will crashing the VM.</div><div><br></div><div>My NIF successfully, and i get the expected result.</div><div><br></div><div>this is my code. please review.</div><div><br></div><div>// test_nif.c</div><div><br></div><div><div style="font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre-wrap"><div><div style="color:rgb(0,0,0);line-height:18px"><div><span style="color:rgb(0,0,255)">static</span> ERL_NIF_TERM <span style="color:rgb(121,94,38)">lcs</span>(ErlNifEnv *<span style="color:rgb(0,16,128)">env</span>, <span style="color:rgb(0,0,255)">int</span> <span style="color:rgb(0,16,128)">argc</span>, <span style="color:rgb(0,0,255)">const</span> ERL_NIF_TERM <span style="color:rgb(0,16,128)">argv</span><span style="color:rgb(0,0,255)">[]</span>)</div><div>{</div><div>  <span style="color:rgb(0,0,255)">int</span> ret;</div><div>  <span style="color:rgb(0,0,255)">char</span> <span style="color:rgb(0,16,128)">A</span>[<span style="color:rgb(9,134,88)">50</span>];</div><div>  <span style="color:rgb(0,0,255)">char</span> <span style="color:rgb(0,16,128)">B</span>[<span style="color:rgb(9,134,88)">50</span>];</div><div>  <span style="color:rgb(121,94,38)">enif_get_string</span>(env, <span style="color:rgb(0,16,128)">argv</span>[<span style="color:rgb(9,134,88)">0</span>], &A, <span style="color:rgb(9,134,88)">50</span>, ERL_NIF_LATIN1);</div><div>  <span style="color:rgb(121,94,38)">enif_get_string</span>(env, <span style="color:rgb(0,16,128)">argv</span>[<span style="color:rgb(9,134,88)">1</span>], &B, <span style="color:rgb(9,134,88)">50</span>, ERL_NIF_LATIN1);</div><div>  <span style="color:rgb(0,0,255)">uint32_t</span> lenA = <span style="color:rgb(121,94,38)">strlen</span>(A);</div><div>  <span style="color:rgb(0,0,255)">uint32_t</span> lenB = <span style="color:rgb(121,94,38)">strlen</span>(B);</div><br><div>  ret = <span style="color:rgb(121,94,38)">llcs_utf8_int</span>(A, B, lenA, lenB);</div><div>  <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(121,94,38)">enif_make_int</span>(env, ret);</div><div>}</div><br><div><span style="color:rgb(0,0,255)">static</span> ErlNifFunc nif_funcs<span style="color:rgb(0,0,255)">[]</span> = {</div><div>  {<span style="color:rgb(163,21,21)">"lcs"</span>, <span style="color:rgb(9,134,88)">2</span>, lcs}</div><div>};</div><br><div><span style="color:rgb(121,94,38)">ERL_NIF_INIT</span>(test_nif, nif_funcs, <span style="color:rgb(0,0,255)">NULL</span>, <span style="color:rgb(0,0,255)">NULL</span>, <span style="color:rgb(0,0,255)">NULL</span>, <span style="color:rgb(0,0,255)">NULL</span>)</div></div></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">//</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">test_nif:lcs("Hello World", "Hellaoo World").<br></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Thank you </div></div></div></div>
</blockquote></div></div>