SYNOPSYS
#include"rdsnnn.h" rdsrec_list *allocrdsrec( Size ) unsigned int Size;
PARAMETER
- Size
- Size of the added structure to the rdsrec_list structure.
DESCRIPTION
Allocates a memory block for rdsrec_list structure and an added structure defined by the user. Fields contained in the two structures are set to NULL for pointers and 0L for numbers.NOTE: Allocation by heap ( see rdsalloc function ).
RETURN VALUE
The pointer to the rectangle structure allocated.ERRORS
"Rds202: rdsalloc error, can't continue !"- it's impossible to allocate the memory size desired.
EXAMPLE
# include "mutnnn.h" # include "rdsnnn.h" # include "rtlnnn.h" /* Name and fields of UserStruct are defined by the user */ typedef struct UserStruct { char *STRING; void *USER1; } UserStruct; # define POINTER_STRING(R) \ \ (((UserStruct *)((char *)(R)+sizeof(rdsrec_list)))->STRING ) # define POINTER_USER1(R) \ \ (((UserStruct *)((char *)(R)+sizeof(rdsrec_list)))->USER1 ) main() { rdsfig_list *Figure; rdsrec_list *Rectangle; mbkenv(); rdsenv(); loadrdsparam(); Rectangle = allocrdsrec ( sizeof ( UserStruct ) ); Rectangle->X = 20; Rectangle->Y = 20; Rectangle->DX = 48; Rectangle->DY = 8; POINTER_STRING (Rectangle) = (char *) malloc (strlen ("Alu1")+1); strcpy(POINTER_STRING(Rectangle),"Alu1"); POINTER_USER1 (Rectangle) = (void *) Figure; ... }