Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

strdup

string.strdup
fn strdup(str: [*:0]const c_char) callconv(.c) ?[*:0]c_char

File

lib/c/string.zig:171

Code

fn strdup(str: [*:0]const c_char) callconv(.c) ?[*:0]c_char {
    const len = std.mem.len(str);
    const d_opaque = c.malloc(len + 1) orelse return null;
    const d: [*]c_char = @ptrCast(d_opaque);
    @memcpy(d[0 .. len + 1], str[0 .. len + 1]);
    return @ptrCast(d);
}