mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 14:25:16 +00:00
add allocSentinel function
This commit is contained in:
parent
9c4dc7b1bb
commit
90c232bbe8
@ -105,6 +105,20 @@ pub const Allocator = struct {
|
||||
return self.alignedAlloc(T, null, n);
|
||||
}
|
||||
|
||||
/// Allocates an array of `n + 1` items of type `T` and sets the first `n`
|
||||
/// items to `undefined` and the last item to `sentinel`. Depending on the
|
||||
/// Allocator implementation, it may be required to call `free` once the
|
||||
/// memory is no longer needed, to avoid a resource leak. If the
|
||||
/// `Allocator` implementation is unknown, then correct code will
|
||||
/// call `free` when done.
|
||||
///
|
||||
/// For allocating a single item, see `create`.
|
||||
pub fn allocSentinel(self: *Allocator, comptime Elem: type, n: usize, comptime sentinel: Elem) Error![:sentinel]Elem {
|
||||
var ptr = try self.alloc(Elem, n + 1);
|
||||
ptr[n] = sentinel;
|
||||
return ptr[0 .. n :sentinel];
|
||||
}
|
||||
|
||||
pub fn alignedAlloc(
|
||||
self: *Allocator,
|
||||
comptime T: type,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user