Previous External Development Guide: IDL Internals: Variables Next

Accessing Variable Data

Often, we are not concerned with the distinction between a scalar and array variable—all that is desired is a pointer to the data and to know how many elements there are. IDL_VarGetData() can be used to obtain this information:

void IDL_VarGetData(IDL_VPTR v, IDL_MEMINT *n, char **pd,  
                    int ensure_simple)  

where:

v

The variable for which data is desired.

n

The address of a variable that will hold the number of elements.

pd

The address of variable that will hold a pointer to data, cast to be a pointer to a pointer to a character (for example (char **) &myptr).

ensure_simple

If TRUE, this routine calls the IDL_ENSURE_SIMPLE macro on the argument v to screen out variables of the types it prevents. Otherwise, IDL_EXCLUDE_FILE is called, because file variables have no data area to return.

On exit, IDL_VarGetData() stores the data count and pointer into the variables pointed at by n and pd, respectively.

  IDL Online Help (March 06, 2007)