aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/exercises/42_pointers4.zig
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/42_pointers4.zig')
-rw-r--r--exercises/42_pointers4.zig33
1 files changed, 33 insertions, 0 deletions
diff --git a/exercises/42_pointers4.zig b/exercises/42_pointers4.zig
new file mode 100644
index 0000000..e6b8964
--- /dev/null
+++ b/exercises/42_pointers4.zig
@@ -0,0 +1,33 @@
+//
+// Now let's use pointers to do something we haven't been
+// able to do before: pass a value by reference to a function!
+//
+const std = @import("std");
+
+pub fn main() void {
+ var num: u8 = 1;
+ var more_nums = [_]u8{ 1, 1, 1, 1 };
+
+ // Let's pass a reference to num to our function and print it:
+ makeFive(&num);
+ std.debug.print("num: {}, ", .{num});
+
+
+ // Now something interesting. Let's pass a reference to a
+ // specific array value:
+ makeFive(&more_nums[2]);
+
+ // And print the array:
+ std.debug.print("more_nums: ", .{});
+ for (more_nums) |n| {
+ std.debug.print("{} ", .{n});
+ }
+
+ std.debug.print("\n", .{});
+}
+
+// This function should take a reference to a u8 value and set it
+// to 5.
+fn makeFive(x: *u8) void {
+ ??? = 5; // fix me!
+}