RosettaCodeData/Task/Call-a-foreign-language-function/Odin/call-a-foreign-language-function.odin
2023-07-01 13:44:08 -04:00

17 lines
346 B
Odin

package main
import "core:fmt"
foreign import libc "system:c"
@(default_calling_convention="c")
foreign libc {
@(link_name="strdup") cstrdup :: proc(_: cstring) -> cstring ---
@(link_name="free") cfree :: proc(_: rawptr) ---
}
main :: proc() {
s1 : cstring = "hello"
s2 := cstrdup(s1)
fmt.printf("{}\n", s2)
cfree(rawptr(s2))