× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Is there any trick available to create a multiple occurrence data
structure and define the size at run time?

The "trick" is to manually do what the compiler does with a MODS and simply
use a pointer to base the structure.  You then move to the next occurrence
by updating the pointer.  Pointer can reference dynamic memory, or a user
space - your choice.

Like this:


 d dynamicMODS     DS                  Based(pdynamicMODS)
 d  field1                        5p 0
 d  field2                       30a
                                                                
 d pbase           s               *
 d x               s             10i 0
 d max             s             10i 0 Inz(30)
                                                                
  /Free
    // Allocate enough space for 30 elements
    pbase = %alloc(max * %size(dynamicMODS));
    pdynamicMODS = pbase;  // Occurrence is set at 1
    // Increment to next element
    pdynamicMODS = pdynamicMODS + %size(dynamicMODS);
    // Set to occurrence x
    pdynamicMODS = pdynamicMODS + ((x -1) * %size(dynamicMODS));
    // Increase storage by 20 elements (max now 50)
    max = max + 20;
    pbase = %realloc(max * %size(dynamicMODS));
    // NOTE pbase may have changed so current value of
    //      pdynamicMODS should now be reset to avoid nasty accidents!



Jon Paris
Partner400

www.Partner400.com

www.systemideveoper.com



 


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.