Provided by: alliance_5.0-20120515-6_amd64 bug

NAME

        allocrdsrec - allocates memory for a rectangle

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;
                 ...
               }

SEE ALSO

       librds, freerdsrec, rdsalloc, rdsfree