table of contents
talloc_array(3) | talloc | talloc_array(3) |
NAME¶
talloc_array - Talloc contains some handy helpers for handling Arrays conveniently.
SYNOPSIS¶
Modules¶
The talloc string functions.
talloc string allocation and manipulation functions.
Functions¶
_PUBLIC_ void * talloc_array (const void *ctx, #type,
unsigned count)
Allocate an array. _PUBLIC_ void * talloc_array_size (const void *ctx,
size_t size, unsigned count)
Allocate an array. void * talloc_array_ptrtype (const void *ctx, const
void *ptr, unsigned count)
Allocate an array into a typed pointer. size_t talloc_array_length
(const void *ctx)
Get the number of elements in a talloc'ed array. void *
talloc_zero_array (const void *ctx, #type, unsigned count)
Allocate a zero-initialized array. _PUBLIC_ void * talloc_realloc
(const void *ctx, void *ptr, #type, size_t count)
Change the size of a talloc array. void * talloc_realloc_size (const
void *ctx, void *ptr, size_t size)
Untyped realloc to change the size of a talloc array. _PUBLIC_ void *
talloc_realloc_fn (const void *context, void *ptr, size_t size)
Provide a function version of talloc_realloc_size.
Detailed Description¶
Talloc contains some handy helpers for handling Arrays conveniently.
Function Documentation¶
_PUBLIC_ void* talloc_array (const void * ctx, # type, unsigned count)¶
Allocate an array. The macro is equivalent to:
(type *)talloc_size(ctx, sizeof(type) * count);
except that it provides integer overflow protection for the multiply, returning NULL if the multiply overflows.
Parameters:
type The type that we want to allocate.
count The number of 'type' elements you want to allocate.
Returns:
Example:
unsigned int *a, *b; a = talloc_zero(NULL, unsigned int); b = talloc_array(a, unsigned int, 100);
See also:
talloc_zero_array()
size_t talloc_array_length (const void * ctx)¶
Get the number of elements in a talloc'ed array. A talloc chunk carries its own size, so for talloc'ed arrays it is not necessary to store the number of elements explicitly.
Parameters:
Returns:
void* talloc_array_ptrtype (const void * ctx, const void * ptr, unsigned count)¶
Allocate an array into a typed pointer. The macro should be used when you have a pointer to an array and want to allocate memory of an array to point at with this pointer. When compiling with gcc >= 3 it is typesafe. Note this is a wrapper of talloc_array_size() and talloc_get_name() will return the current location in the source file and not the type.
Parameters:
ptr The pointer you want to assign the result to.
count The number of elements you want to allocate.
Returns:
_PUBLIC_ void* talloc_array_size (const void * ctx, size_t size, unsigned count)¶
Allocate an array.
Parameters:
size The size of an array element.
count The number of elements you want to allocate.
Returns:
_PUBLIC_ void* talloc_realloc (const void * ctx, void * ptr, # type, size_t count)¶
Change the size of a talloc array. The macro changes the size of a talloc pointer. The 'count' argument is the number of elements of type 'type' that you want the resulting pointer to hold.
talloc_realloc() has the following equivalences:
talloc_realloc(ctx, NULL, type, 1) ==> talloc(ctx, type); talloc_realloc(ctx, NULL, type, N) ==> talloc_array(ctx, type, N); talloc_realloc(ctx, ptr, type, 0) ==> talloc_free(ptr);
The 'context' argument is only used if 'ptr' is NULL, otherwise it is ignored.
Parameters:
ptr The chunk to be resized.
type The type of the array element inside ptr.
count The intended number of array elements.
Returns:
_PUBLIC_ void* talloc_realloc_fn (const void * context, void * ptr, size_t size)¶
Provide a function version of talloc_realloc_size. This is a non-macro version of talloc_realloc(), which is useful as libraries sometimes want a ralloc function pointer. A realloc() implementation encapsulates the functionality of malloc(), free() and realloc() in one call, which is why it is useful to be able to pass around a single function pointer.
Parameters:
ptr The chunk to be resized.
size The new chunk size.
Returns:
void* talloc_realloc_size (const void * ctx, void * ptr, size_t size)¶
Untyped realloc to change the size of a talloc array. The macro is useful when the type is not known so the typesafe talloc_realloc() cannot be used.
Parameters:
ptr The chunk to be resized.
size The new chunk size.
Returns:
void* talloc_zero_array (const void * ctx, # type, unsigned count)¶
Allocate a zero-initialized array.
Parameters:
type The type that we want to allocate.
count The number of 'type' elements you want to allocate.
Returns:
The talloc_zero_array() macro is equivalent to:
ptr = talloc_array(ctx, type, count); if (ptr) memset(ptr, 0, sizeof(type) * count);
Author¶
Generated automatically by Doxygen for talloc from the source code.
Fri Apr 19 2024 | Version 2.0 |