MA_GET_POINTER(3)

NAME
MA_get_pointer - get the base pointer for a block

C SYNOPSIS
#include "macdecls.h"
Boolean MA_get_pointer(memhandle, pointer)
    Integer     memhandle;      /* read-only */
    Pointer     *pointer;       /* write-only */

FORTRAN SYNOPSIS
Not available.

DESCRIPTION
MA_get_pointer() returns in pointer the base pointer for the block corresponding to the handle memhandle (which was returned by MA_allocate_heap() or MA_push_stack() when the block was allocated).

USAGE
The following C code illustrates the use of MA_get_pointer() by allocating a block of 5 integers on the heap and then storing values into the integers.
#include "macdecls.h"
    Boolean ok;
    Integer mhandle;
    Pointer pointer;
    int     i;
    ok = MA_allocate_heap(MT_INT, 5, "heap int block", &mhandle);
    if (ok)
    {
        ok = MA_get_pointer(mhandle, &pointer);
        if (ok)
            for (i = 0; i < 5; i++)
                *((int *)pointer + i) = 0;
    }

DIAGNOSTICS
invalid memhandle: %d
memhandle is not a valid handle.
invalid checksum for memhandle %d (name: '%s')
The block's computed checksum does not match its stored checksum. This indicates that the block has been corrupted by having its internal state overwritten.
invalid guard(s) for memhandle %d (name: '%s')
This indicates that the block has been corrupted by being overwritten at one or both ends. The likely cause of this is an application indexing bug.
memhandle %d (name: '%s') not in heap or stack
The block is not currently allocated in the heap or the stack.
Other diagnostics are possible. If seen, they indicate corruption of the internal state of MA, caused by bugs in either MA or the application.

RETURN VALUE
C: MA_TRUE upon success, MA_FALSE upon failure.
FORTRAN: Not available.

NOTES
MA_get_pointer() is not available in FORTRAN, because FORTRAN does not support pointers.

FILES
Include files: /msrc/proj/hpctools/ma/release/current/include
Library:       /msrc/proj/hpctools/ma/release/current/lib/platform/libma.a
Man pages:     /msrc/proj/hpctools/ma/release/current/man/man3
Source code:   /msrc/proj/hpctools/ma/release/current/tar/marelease.tar

SEE ALSO
MA(3), MA_alloc_get(3), MA_allocate_heap(3), MA_get_index(3), MA_push_get(3), MA_push_stack(3)

AUTHOR
Gregory S. Thomas, Pacific Northwest National Laboratory