<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Überschriebener Speicherbereich eines struct-arrays in einem Thread]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in main() dynamisch den Speicher für ein struct-array alloziert und es dann initialisiert. Den Pointer auf dieses array habe ich einem Thread übergeben. Als ich dann auf die Daten in diesem array im Thread zugreifen wollte, nachdem ich ganz am Anfang dieses Threads einige string-Variablen deklariert und initialisiert hatte, war der Inhalt dieses arrays verändert.</p>
<p>Als Abhilfe kann ich die Änderung des Inhaltes dieses arrays vermeiden, indem ich zu Beginn des Threads erneut den Speicher für ein gleiches struct-array alloziere, es wird dieser Speicherbereich nämlich zum zweiten Mal alloziert!!</p>
<p>Gibt es da eine systematische Vorgehensweise? Wie stelle ich sicher, dass der Inhalt des struct-arrays nicht unbeabsichtigt verändert wird? Muss/Sollte ich den Speicher auch wieder zwei Mal freigeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ?</p>
<p>Natürlich könnte ich das struct-array auch global deklarieren. Das ist jedoch wegen der statischen Deklaration nicht die bevorzugte Lösung.</p>
<p>Danke für euere Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ulrich</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210432/überschriebener-speicherbereich-eines-struct-arrays-in-einem-thread</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 11:38:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210432.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Apr 2008 20:24:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überschriebener Speicherbereich eines struct-arrays in einem Thread on Fri, 11 Apr 2008 05:28:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in main() dynamisch den Speicher für ein struct-array alloziert und es dann initialisiert. Den Pointer auf dieses array habe ich einem Thread übergeben. Als ich dann auf die Daten in diesem array im Thread zugreifen wollte, nachdem ich ganz am Anfang dieses Threads einige string-Variablen deklariert und initialisiert hatte, war der Inhalt dieses arrays verändert.</p>
<p>Als Abhilfe kann ich die Änderung des Inhaltes dieses arrays vermeiden, indem ich zu Beginn des Threads erneut den Speicher für ein gleiches struct-array alloziere, es wird dieser Speicherbereich nämlich zum zweiten Mal alloziert!!</p>
<p>Gibt es da eine systematische Vorgehensweise? Wie stelle ich sicher, dass der Inhalt des struct-arrays nicht unbeabsichtigt verändert wird? Muss/Sollte ich den Speicher auch wieder zwei Mal freigeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ?</p>
<p>Natürlich könnte ich das struct-array auch global deklarieren. Das ist jedoch wegen der statischen Deklaration nicht die bevorzugte Lösung.</p>
<p>Danke für euere Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ulrich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490040</guid><dc:creator><![CDATA[Hohe-Berge]]></dc:creator><pubDate>Fri, 11 Apr 2008 05:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Überschriebener Speicherbereich eines struct-arrays in einem Thread on Fri, 11 Apr 2008 05:18:36 GMT]]></title><description><![CDATA[<p>const?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490091</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Fri, 11 Apr 2008 05:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Überschriebener Speicherbereich eines struct-arrays in einem Thread on Fri, 11 Apr 2008 05:30:56 GMT]]></title><description><![CDATA[<p>Hallo The-Kenny,</p>
<p>habe meine Frage noch ergänzt: ich möchte nur die unbeabsichtigte Veränderung vermeiden. Kontrolliert möchte ich den Inhalt schon verändern.</p>
<p>Danke</p>
<p>Ulrich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490094</guid><dc:creator><![CDATA[Hohe-Berge]]></dc:creator><pubDate>Fri, 11 Apr 2008 05:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Überschriebener Speicherbereich eines struct-arrays in einem Thread on Fri, 11 Apr 2008 05:54:26 GMT]]></title><description><![CDATA[<p>Hohe-Berge schrieb:</p>
<blockquote>
<p>ich habe in main() dynamisch den Speicher für ein struct-array alloziert und es dann initialisiert. Den Pointer auf dieses array habe ich einem Thread übergeben. Als ich dann auf die Daten in diesem array im Thread zugreifen wollte, nachdem ich ganz am Anfang dieses Threads einige string-Variablen deklariert und initialisiert hatte, war der Inhalt dieses arrays verändert.</p>
</blockquote>
<p>Ich gehe davon aus das dein Fehler nichts mit den Thread als solches zu tun hat. Allozierte Speicherbereiche können nicht ohne weiteres durch andere Bereiche überschrieben werden, wenn man nicht gerade über Bereichsgrenzen schreibt, uninitialisierte Zeiger verwendet...</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490101</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 11 Apr 2008 05:54:26 GMT</pubDate></item><item><title><![CDATA[Reply to Überschriebener Speicherbereich eines struct-arrays in einem Thread on Fri, 11 Apr 2008 07:07:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Problem erkannt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> !</p>
<p>Nach der Erzeugung des Threads in main() gab es kein join-Befehl vor der Freigabe des dynamischen Speichers. Somit wird der allozierte Speicher &quot;relativ&quot; schnell wieder freigegeben.</p>
<p>Durch das Einfügen des join-Befehls wartet main() auf das Beenden des Threads und gibt erst danach den dynamischen Speicher wieder frei.</p>
<p>Danke für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ulrich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490133</guid><dc:creator><![CDATA[Hohe-Berge]]></dc:creator><pubDate>Fri, 11 Apr 2008 07:07:18 GMT</pubDate></item></channel></rss>