diff options
Diffstat (limited to 'exercises/042_pointers4.zig')
-rw-r--r-- | exercises/042_pointers4.zig | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/exercises/042_pointers4.zig b/exercises/042_pointers4.zig new file mode 100644 index 0000000..261dbc1 --- /dev/null +++ b/exercises/042_pointers4.zig @@ -0,0 +1,32 @@ +// +// 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! +} |