about summary refs log tree commit diff
path: root/examples/18.pry
diff options
context:
space:
mode:
Diffstat (limited to 'examples/18.pry')
-rw-r--r--examples/18.pry30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/18.pry b/examples/18.pry
new file mode 100644
index 0000000..32b2d1a
--- /dev/null
+++ b/examples/18.pry
@@ -0,0 +1,30 @@
+extern malloc = (i64) => *void;
+extern free = (*void) => void;
+
+import "!stdlib.pry";
+
+let main = () => i64 {
+	let x = cast(*i8, malloc(24));
+	(*(x+cast(*i8, 0))) = 10;
+	(*(x+cast(*i8, 1))) = 20;
+	(*(x+cast(*i8, 2))) = 40;
+	printf("%p\n", x);
+	printf("%d\n", *(x+cast(*i8, 0)));
+	printf("%d\n", *(x+cast(*i8, 1)));
+	printf("%d\n", *(x+cast(*i8, 2)));
+	free(cast(*void, x));
+	return 0;
+};
+
+/*
+
+Expected stdout:
+
+${SOMEPOINTER}
+10
+20
+40
+
+Expected return: 0
+
+*/