Chapter Contents |
Previous |
Next |
hpalloc |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
ERRORS | |
DIAGNOSTICS | |
IMPLEMENTATION | |
EXAMPLE | |
RELATED FUNCTIONS | |
SEE ALSO |
SYNOPSIS |
#include <multheap.h> void *hpalloc(_heap_id heapid, size_t size);
DESCRIPTION |
hpalloc
allocates a block
of dynamic memory of the size specified by size
from a heap indicated by heapid
, which was
returned by hpcreate
when it was initialized.
RETURN VALUE |
hpalloc
returns the address
of the first character of the new block of memory. The allocated block is
suitably aligned for storage of any type of data.
ERRORS |
User ABEND 1205 or 1206 may occur if memory management data areas are overlaid.
DIAGNOSTICS |
If adequate memory is not available, the heapid
is invalid, or if 0 bytes are requested, NULL is
returned.
IMPLEMENTATION |
See malloc
for a description
of normal memory allocation. hpalloc
is, in
effect, the same as calling hppush(heapid)
, malloc(size)
, hppop()
.
EXAMPLE |
#include <stdlib.h> #include <stdio.h> #include <string.h> #include <multheap.h> char *source, *copy; main() { source = "A simple line for the hpalloc example "; /* Allocate space for a copy for source. */ copy = hpalloc(_HEAP_STD, strlen(source) + 1); /* Copy if there is space. */ if (copy) { strcpy(copy,source); puts(copy); } else puts("hpalloc failed to allocate memory for copy."); }
RELATED FUNCTIONS |
malloc
, pool
, hppoolcreate
SEE ALSO |
"Memory Allocation Functions" in Chapter 2, "Function Categories" of the SAS/C Library Reference, Volume 1.
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2004 by SAS Institute Inc., Cary, NC, USA. All rights reserved.