-
Hallo,
ich bekomme den gleichen Fehler, wenn ich dein Beispiel nutze.
Dann habe ich wohl einen Gedankenfehler in meinem Programm.
Kann es sein, dass diese Anweisungen mehr Speicher zuweisen, als ich erwarte (X+10 = 11 Elemente)?
PHP-Code:
// Allocate memory X + 10 elements Y = X + 10; Arrayptr = %Alloc(%Size(cArray) * Y);
-
Klar, du weist ja nicht die Größe der einzelnen Elemente zu sondern die definierte Größe deiner gesamten DS, und das N-Mal.
-
In Ordnung, ich habe ein Feld mit der Länge 10 in meinem Array.
Also müsste ich wenn ich 11 Elemente zuweise Platz für 110 Zeichen haben, oder nicht?
Wo liegt mein Irrtum?
-
11 * 10.000 = 110.000
lass das lieber mit der Pointer Rechnerei!
D*B
 Zitat von Matthias182
In Ordnung, ich habe ein Feld mit der Länge 10 in meinem Array.
Also müsste ich wenn ich 11 Elemente zuweise Platz für 110 Zeichen haben, oder nicht?
Wo liegt mein Irrtum?
-
cArray ist eine Struktur mit 1000 Elementen von aArray, also 10.000 lang.
%size(cArray) liefert daher 10.000
%size(aArray) liefert 10.
-
 Zitat von BenderD
11 * 10.000 = 110.000
lass das lieber mit der Pointer Rechnerei!
D*B
Na ja, wenn man sich nicht mit Themen auseinander setzt, dann wird man sie auch nicht verstehen.
Also nochmal, die Berechnung ist also:
Länge Feld (10) x Elemente Array (1000) x 11 = 110 000
Das bedeutet aber, dass ich automatisch mehr Speicher zugewiesen habe, als das Array Elemente aufnehmen kann. Stimmt das soweit?
Die Frage ist nun, wie schaffe ich es denn dann, weniger Speicher zuzuweisen? Wenn die Anzahl Elemnte immer eine Rolle spielt ist das aus meiner Sicht so nicht möglich.
-
Du musst nur für deine Berechnung das richtige Feld für %size wähen, dann stimmt auch die Berechnung, also
%size(aArray) * X
Aber:
Wenn du ein Array mit 1000 Elementen anlegst, kannst du nicht mehr als 1000 Elemente einstellen, da es sonst einen Index-Out-Of-Range-Laufzeit-Fehler gibt.
Du kannst aber durchaus mehr Elemente definieren solange eine einzelne Zuweisung 16MB nicht übersteigt.
-
 Zitat von Matthias182
Die Frage ist nun, wie schaffe ich es denn dann, weniger Speicher zuzuweisen? Wenn die Anzahl Elemnte immer eine Rolle spielt ist das aus meiner Sicht so nicht möglich.
Arrayptr = %Alloc(6) weist weniger Speicher zu.
-
... pointer und dynamische Speicher Allocation gehören zu den Themen, die in 99,99% aller Programme nicht gebraucht werden und für eine Vielzahl von Problemen übelster Art verantwortlich sind. Da sollte man die Finger davon lassen, mindestens bis man das Handwerkszeug aus dem FF beherrscht, Dazu gehört ganz sicher, dass man versteht was man da deklariert und wieviel Speicher das belegt. Am Rande sei vermerkt, dass die Redefinition mit dem Overlay keinerlei Sinn macht.
D*B,
der so ziemlich der letzte ist, der für Forscherdrang kein Verständnis hat, aber alles zu seiner Zeit.
 Zitat von Matthias182
Na ja, wenn man sich nicht mit Themen auseinander setzt, dann wird man sie auch nicht verstehen.
-
 Zitat von BenderD
... pointer und dynamische Speicher Allocation gehören zu den Themen, die in 99,99% aller Programme nicht gebraucht werden und für eine Vielzahl von Problemen übelster Art verantwortlich sind. Da sollte man die Finger davon lassen.
Du ahnst nicht wie sehr Du mir aus der Seele sprichst!
... Vor allem wenn die Pointer durch 27 Prozeduren mal hierhin und mal dahin zeigen und keine Dokumentation vorliegt.
Birgitta
-
... das ist ja beidseitig keine Schande, wenn wir einer Meinung sind
)
schönes Wochenende
Dieter
 Zitat von B.Hauser
Du ahnst nicht wie sehr Du mir aus der Seele sprichst!
... Vor allem wenn die Pointer durch 27 Prozeduren mal hierhin und mal dahin zeigen und keine Dokumentation vorliegt.
Birgitta
Similar Threads
-
By y-richy in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 10-08-06, 13:59
-
By Xanas in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 23-05-06, 13:09
-
By Stannek in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 04-04-06, 08:16
-
By marcel331 in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 18-01-06, 09:35
-
By dd3tj in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 20-01-05, 14:55
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