From 5af4a54e9c5f6481c3ba0bfe045855832974ab4f Mon Sep 17 00:00:00 2001 From: Baitinq Date: Fri, 30 May 2025 00:22:33 +0200 Subject: Feature: Support structs as pointers --- examples/23.src | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 examples/23.src (limited to 'examples/23.src') diff --git a/examples/23.src b/examples/23.src new file mode 100644 index 0000000..9139428 --- /dev/null +++ b/examples/23.src @@ -0,0 +1,40 @@ +extern malloc = (i64) => *void; + +import "!stdlib.src"; + +let test = struct { + x: i64, + y: *i8, +}; + +let print_struct = (s: test) => void { + println("X: %d", s.x); + println("Y: %s", s.y); + return; +}; + +let main = () => i64 { + let inst = cast(*test, malloc(sizeof(test))); + + print_struct(*inst); + + (*inst).x = 4; + (*inst).y = "hi"; + + print_struct(*inst); + + return 0; +}; + +/* + +Expected stdout: + +X: 0 +Y: (null) +X: 4 +Y: hi + +Expected return: 0 + +*/ -- cgit 1.4.1