-
Pointer ins Nirwana nach Proc Aufruf???
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
Andreas
***Wer einen Schreibfehler findet darf ihn behalten***
-
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
Wenn der pointer an das Hauptprogramm zurückgegeben wird weisst er ins Nirwana.
[/quote]
wohin denn sonst ? die Prozedur ist ja beendet, oder?
Gruß
Rolf
-
Hallo,
erst mal eine Anmerkung zur Frage:
wenn irgendwas nicht tut, dann ist es sinnvoll den Original Code anzugeben und nicht den Ungefähren, oder keinen. Das erhöht die Antwortquote.
Um Rolfs frotzelige Antwort zu erläutern: der zurück gegebene Pointer darf nicht auf lokalen Speicher der Prozedur verweisen und es steht zu vermuten, dass er das tut. Alle lokalen Deklarationen einer Prozedur werden mit automatic storage hinterlegt, der nach Beendigung der Prozedur weg ist. Wenn er global deklariert wird, dann sollte dieses Problem weg sein, solange kein RCLACTGRP oder ACTGRP(*NEW) im Spiel ist.
Dieter
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von rmittag:
Wenn der pointer an das Hauptprogramm zurückgegeben wird weisst er ins Nirwana.
wohin denn sonst ? die Prozedur ist ja beendet, oder?
Gruß
Rolf[/QUOTE]
-
hi Dieter,
just couldn't resist ...
Rolf
-
Hallo Dieter und Rolf,
danke für die Antworten.
Gruß
Andreas
Andreas
***Wer einen Schreibfehler findet darf ihn behalten***
Similar Threads
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 23-01-07, 10:02
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 29-11-06, 18:07
-
By schatte in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 04-09-06, 08:50
-
By QSECOFR-1 in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 14-06-06, 18:02
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks