<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/</id><updated>2020-02-28T12:09:07.887000Z</updated><subtitle>Recent posts to Speicherverwaltung allgemein ...</subtitle><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#3ef4" rel="alternate"/><published>2020-02-28T12:09:07.887000Z</published><updated>2020-02-28T12:09:07.887000Z</updated><author><name>franzhoepfinger</name><uri>https://forge.codesys.com/u/franzhoepfinger/</uri></author><id>https://forge.codesys.com7a89cf254b63a9dbdced113c29dd878b878b41f4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Roland Wagner hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Hallo,&lt;br/&gt;
nur gleich zur "Vorwarnung"   : das Beispiel mit den verketteten Listen erfordert CoDeSys V3. Da ist die Objektorientierung jetzt implementiert...  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ich meinte das: Projects\CoDeSysV2.3\Other\DynamicList&lt;/p&gt;
&lt;p&gt;dort wird auch intensiv "SysMemAlloc" geschossen ....&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#f548" rel="alternate"/><published>2020-02-28T12:09:05.376000Z</published><updated>2020-02-28T12:09:05.376000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.coma6d6ee7acb50d32bd19e9cb411191cd635836a23</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo nochmal&lt;/p&gt;
&lt;p&gt;Ich versuche mal auf die einzelnen Punkte zu antworten, soweit ich das verstehe.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Stimmt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keine Ahnung.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ich würde sagen, der Zeiger belegt wie immer 4Byte. Die Größe der Struktur ist hier ja noch völlig unmassgeblich.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;So weit ich das verstehe, erzeugst du einen Pointer auf ARRAY&lt;span&gt;[0..9]&lt;/span&gt; OF FB_ExpKonv. Diese 10 Instanzen sind ja aber schon irgendwo deklariert, oder ?&lt;br/&gt;
Sonst macht ein Pointer auf deiese ja keinen Sinn. Wenn sie aber schon deklariert sind, dann belegen sie auch Speicher.&lt;br/&gt;
Wofür soll denn das SysMemAlloc dann noch gut sein ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;VarInOut sind ja auch nichts anderes als Pointer auf irgendwas. Belegen also jeweils 4 Byte.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ich habe aber den Compiler auch nicht geschrieben, deshalb: Keine Garantie auf Richtigkeit dieser Aussagen.&lt;/p&gt;
&lt;p&gt;Gruß&lt;br/&gt;
Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#c221" rel="alternate"/><published>2020-02-28T12:08:58.026000Z</published><updated>2020-02-28T12:08:58.026000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com63fdb6aa75959218a75da67b4d8704bb42a11337</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Mahlzeit&lt;/p&gt;
&lt;p&gt;Warum willst, bzw musst du das eigentlich wissen ?&lt;br/&gt;
Ich programmiere schon seit Jahren jeden (Arbeits)Tag mit Codesys und habe mir über diese Thema noch gar nie Gedanken machen müssen...&lt;br/&gt;
Es ist nicht wie in diversen Hochsprachen, das man sich um Belegung, bzw Freigabe des verwendeten Speichers kümmern muss.&lt;br/&gt;
Ich lass das alles CoDeSys machen.&lt;/p&gt;
&lt;p&gt;Gruß&lt;br/&gt;
Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#34bf" rel="alternate"/><published>2020-02-28T12:08:55.544000Z</published><updated>2020-02-28T12:08:55.544000Z</updated><author><name>mactoolz</name><uri>https://forge.codesys.com/u/mactoolz/</uri></author><id>https://forge.codesys.com1ca54cf5f6064f892a507c82d5f55dc00ffde2f9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;verkette Listen sind mir schin zum Teil ein Begriff. &lt;/p&gt;
&lt;p&gt;Das beantwortet aber nicht wie CoDeSys mit Speicherreservierung von FBs etc umgeht.&lt;/p&gt;
&lt;p&gt;Ich befinde mich immer noch in der CoDeSys V.2.3.&lt;/p&gt;
&lt;p&gt;Für mich ist immer noch unklar wann und wie groß der Speicher für einen FB ist.&lt;/p&gt;
&lt;p&gt;MacToolz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#4401" rel="alternate"/><published>2020-02-28T12:08:48.246000Z</published><updated>2020-02-28T12:08:48.246000Z</updated><author><name>RolandWagner</name><uri>https://forge.codesys.com/u/rowa/</uri></author><id>https://forge.codesys.comf4340fcd4c54b2e65d93bc34538f97b28127f357</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;nur gleich zur "Vorwarnung"   : das Beispiel mit den verketteten Listen erfordert CoDeSys V3. Da ist die Objektorientierung jetzt implementiert...  &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#dad9" rel="alternate"/><published>2020-02-28T12:08:45.739000Z</published><updated>2020-02-28T12:08:45.739000Z</updated><author><name>franzhoepfinger</name><uri>https://forge.codesys.com/u/franzhoepfinger/</uri></author><id>https://forge.codesys.comd26f1ed4e8047abc3c08ba6df1bc88a97b5a3907</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;geh mal auf den FTP Server von 3S und schau dir das Beispiel über verkettete Listen an. &lt;/p&gt;
&lt;p&gt;Gruß, &lt;br/&gt;
Franz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Speicherverwaltung allgemein ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/3d536268a7/?limit=25#2452" rel="alternate"/><published>2020-02-28T12:08:38.534000Z</published><updated>2020-02-28T12:08:38.534000Z</updated><author><name>mactoolz</name><uri>https://forge.codesys.com/u/mactoolz/</uri></author><id>https://forge.codesys.com97ab741723cb1df3469f20bb96557cfeec2588c1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;ich denke ich werde mal ein neues Thema eröffnen.&lt;/p&gt;
&lt;p&gt;Ich schlage mich die ganze Zeit mit der Speicherverwaltung rum. Rumschlagen sieht bei mir so aus das&lt;br/&gt;
ich gerade mit den Zeiger im CoDeSys V2.3 experimentiere. Wie ich schon erfahren habe&lt;br/&gt;
gibt es keinen New Operator oder typenlose Zeiger, gut so weit.&lt;/p&gt;
&lt;p&gt;1.&lt;br/&gt;
Was ich gerade nicht verstehe ist was ich mit der Methode SysMemAlloc in CoDeSys erreiche.&lt;br/&gt;
Ich frage deswegen weil, ich festgestellt habe dass es eigentlich egal ist wann ich Speicher allokiere,&lt;br/&gt;
so wie es aussieht wird eh Speicher in CoDeSys reserviert sobald Variabeln in einem FB deklariert sind.&lt;/p&gt;
&lt;p&gt;2.&lt;br/&gt;
Dann ist mir noch aufgefallen das für eine leere FB Instanz grundsätzlich immer ein Byte als Speicher reseriert wird. Warum ???&lt;/p&gt;
&lt;p&gt;3.&lt;br/&gt;
Was passiert mit dem Speicher wenn in einem FB lokale Variabeln als Typ Zeiger auf eine Struktur beinhaltet ???&lt;/p&gt;
&lt;p&gt;pntExpKonv:POINTER TO Struktur&lt;/p&gt;
&lt;p&gt;Ist nach dem kompalieren für die gesamte Struktur schon Speicher reserviert worden oder nur für den Zeiger?&lt;br/&gt;
Die Struktur besitzt mehrere Stringvariabeln von einer Länge mit 255 Zeichen, Bools etc.&lt;br/&gt;
Ich habe zwar den test gemacht und über SizeOf mir die Größe ausgeben lassen aber diese stimmt meiner Meinung nach nicht.&lt;br/&gt;
SizeOf liefert mir eine FB Größe von 40Bytes.&lt;/p&gt;
&lt;p&gt;4.&lt;br/&gt;
Was geschieht hier mit der Speicherrervierung wenn ich diesen Typ irgendwo deklariere ???&lt;/p&gt;
&lt;p&gt;TYPE tType_FB : POINTER TO ARRAY&lt;span&gt;[0..9]&lt;/span&gt; OF FB_ExpKonv;&lt;br/&gt;
END_TYPE&lt;/p&gt;
&lt;p&gt;Eigentlich sollten doch eine Größe von 4Byte je Zeiger als Speicher reserviert werden.&lt;br/&gt;
Wird die SysMemAlloc Methode aufgerufen sollten doch mit einem SizeOf von FB erst dann Speicher der Größe vom FB reserviert werden.&lt;br/&gt;
Dem ist meiner Meinung nach nicht so, der Speicher ist schon vor dem Speicher allokieren reserviert.&lt;/p&gt;
&lt;p&gt;dwDword := SIZEOF(tType^);&lt;/p&gt;
&lt;p&gt;pntTemp := SysMemAlloc(SIZEOF(tType));&lt;/p&gt;
&lt;p&gt;5.&lt;br/&gt;
Dann kommt noch dazu das ich in meinem FB VarInOut Variabeln deklariert habe,&lt;br/&gt;
über das SizeOf werden nur diese Variabeln als Speichergröße zurück gegeben&lt;br/&gt;
aber nicht mein Pointer auf eine Struktur.&lt;/p&gt;
&lt;p&gt;Warum das aufeinmal ??? Wo ist der Speicher denn hin.&lt;/p&gt;
&lt;p&gt;pntExpKonv:POINTER TO _;&lt;/p&gt;
&lt;p&gt;Fragen über Fragen wer blickt hier noch durch, wer kann da helfen.&lt;/p&gt;
&lt;p&gt;mfg&lt;/p&gt;
&lt;p&gt;MacToolz&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>