Exporting a String
Marcin 'Qrczak' Kowalczyk
qrczak@knm.org.pl
28 Sep 2001 10:30:13 GMT
Fri, 28 Sep 2001 08:20:08 +0200, Sven Eric Panitz <sep@softwareag.com> pisze:
> xs <- peekCString cxs
> ys <- peekCString cys
> erg <- return (xs++ys)
The last line can be written:
let erg = xs++ys
and you can also directly write (xs++ys) instead of erg below.
> newCString erg
All OK, except that you leak memory. This string is allocated using
malloc and should be freed using free when no longer needed (either
C free or Haskell free).
> //calling Haskell function
> test=cAppend("the world"," is my oyster");
>
> //printing its result
> printf("%s\n", test);
And then: free(test);
BTW, there is less boilerplate (no startupHaskell etc.) when the main
program is in Haskell instead of C (of course sometimes this is not
what we want).
--
__("< Marcin Kowalczyk * qrczak@knm.org.pl http://qrczak.ids.net.pl/
\__/
^^ SYGNATURA ZASTĘPCZA
QRCZAK