Ich habe ein Modul mit einer Procedure.
Diese Proc soll den Inhalt einer Datenstruktur ermitteln und den Pointer auf diese DS an das Hauptprogramm zurückgeben.
Wenn der pointer an das Hauptprogramm zurückgegeben wird weisst er ins Nirwana.
Was mache ich falsch???
Ach ja: die Proc ist direkt mit ADDBNDDIRE in mein Bindeverzeichnis eingestellt.

Sieht in etwa so aus:

Main Programm:

D Proc PR *
D 18A VALUE
D 10S 0 VALUE
D 3A OPTIONS(*OMIT)

D DS DS based(Ptr_DS)
D Anzahl 5S 0
D Matn 18A 0 DIM(50)
D Menge 8S 0 DIM(50)

C eval Ptr_DS = Proc(Feld1:Feld2)

.. Der inhalt der DS ist nach dem Aufruf Schrott
*********

Procedure:
Prototyp wie oben...
H Nomain
P P#CHK_BEST B EXPORT
D PI *
D E#MATN 18A VALUE
D E#MNG_POS 10S 0 VALUE
D I#MAND 3A OPTIONS(*OMIT)

D DS DS INZ
D Anzahl 5S 0
D Matn 18A 0 DIM(50)
D Menge 8S 0 DIM(50)

D Ptr_DS S *

C Eval Matn(1) = '4711'
C Eval Meng(1) = 1
C Eval Ptr_DS = %ADDR(DS)
C Return Ptr_DS
P E