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