Chapter Contents

Previous

Next
hpcalloc

hpcalloc



Allocate and Clear Memory from Heap


SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
DIAGNOSTICS
IMPLEMENTATION
EXAMPLE
RELATED FUNCTIONS
SEE ALSO


SYNOPSIS

#include <multheap.h>
void *hpcalloc(_heap_id heapid, size_t n, 
size_t size);


DESCRIPTION

hpcalloc allocates a block of dynamic memory from the heap indicated by heapid to contain n elements of the size specified by size . The block is cleared to binary zeroes before return.


RETURN VALUE

hpcalloc 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 calloc for a description of normal memory allocation. hpcalloc in effect is the same as calling hppush(heapid), calloc(size), hppop().


EXAMPLE

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <multheap.h>

double *identity(_heap_id heapid, int size) {
   double *matrix;
   int i;

   matrix = hpcalloc(heapid, sizeof(double), size*size);
   if (matrix == NULL) return(NULL);
   for (i = 0; i < size; ++i)
      matrix[size*i + i] = 1.0;
   return matrix;
}


RELATED FUNCTIONS

calloc, 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.