# Modifying an array parameter

**URL:** <https://ziggit.dev/t/modifying-an-array-parameter/18218>\
**Category:** Help\
**Tags:** language\
**Created:** [November 5, 2026, 12:20am UTC](https://ziggit.dev/t/modifying-an-array-parameter/18218 "2026-11-05T00:20:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![simplelikemike](https://ziggit.dev/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@simplelikemike](https://ziggit.dev/u/simplelikemike)\
**Post date:** [November 5, 2026, 12:20am UTC](https://ziggit.dev/t/modifying-an-array-parameter/18218/1 "2026-11-05T00:20:43Z")

</div>

After completing Ziglings I decided to move on to the Zig exercises on Exercism. The raindrop exercise has the following function template:

```zig
pub fn convert(buffer: []u8, n: u32) []const u8 {
    _ = buffer;
    _ = n;
    @compileError("please implement the convert function");
}

```

I’m looking for documentation or an example function showing how to modify an array passed as a function parameter.

---

<div class="post-metadata">

**Author:** ![zeeqeeng](https://ziggit.dev/letter_avatar_proxy/v4/letter/z/8baadc/32.png) [@zeeqeeng](https://ziggit.dev/u/zeeqeeng)\
**Post date:** [November 5, 2026, 12:47am UTC](https://ziggit.dev/t/modifying-an-array-parameter/18218/2 "2026-11-05T00:47:04Z")

</div>

> [@simplelikemike](#):
>
> how to modify an array passed as a function parameter.

Pass a pointer (slice) to the array as parameter and dereference it in the function body.

---

<div class="post-metadata">

**Author:** ![truly-not-taken](https://ziggit.dev/user_avatar/ziggit.dev/truly-not-taken/32/6205_2.png) [@truly-not-taken](https://ziggit.dev/u/truly-not-taken)\
**Post date:** [November 5, 2026, 12:50am UTC](https://ziggit.dev/t/modifying-an-array-parameter/18218/3 "2026-11-05T00:50:45Z")

</div>

> [@simplelikemike](#):
>
> `buffer: []u8`

This is not an array. It is a [slice](https://ziglang.org/documentation/0.17.1/#Slices). An array would specify the length: `array: [42]u8`. You can modify the array referenced by the slice: `buffer[69] = 'A'`. Then you return a new slice: `return buffer[0..new_length]`.
