<?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[größe von unsigned short array]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Array</p>
<pre><code class="language-cpp">struct ObjArray
{
	unsigned short pixel[60][60][60];
};
</code></pre>
<p>das initialisiert wird</p>
<pre><code class="language-cpp">for(int i=0;i&lt;60;i++)
	{
		for(int j=0;j&lt;60;j++)
		{
			for(int k=0;k&lt;60;k++)
			{
				m_oArray.pixel[i][j][k] = 255;
			}
		}
	}
</code></pre>
<p>wenn ich aber einen wert in der Deklaration größer als 60 mache, dann bekomme ich einen stack-overflow gemeldet<br />
wie kann das sein, das ist doch garnicht so groß und wie könnte ich das beheben??<br />
gruß sammy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223364/größe-von-unsigned-short-array</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 22:08:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223364.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Sep 2008 10:30:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 10:30:28 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Array</p>
<pre><code class="language-cpp">struct ObjArray
{
	unsigned short pixel[60][60][60];
};
</code></pre>
<p>das initialisiert wird</p>
<pre><code class="language-cpp">for(int i=0;i&lt;60;i++)
	{
		for(int j=0;j&lt;60;j++)
		{
			for(int k=0;k&lt;60;k++)
			{
				m_oArray.pixel[i][j][k] = 255;
			}
		}
	}
</code></pre>
<p>wenn ich aber einen wert in der Deklaration größer als 60 mache, dann bekomme ich einen stack-overflow gemeldet<br />
wie kann das sein, das ist doch garnicht so groß und wie könnte ich das beheben??<br />
gruß sammy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1587791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1587791</guid><dc:creator><![CDATA[sammynammy]]></dc:creator><pubDate>Thu, 25 Sep 2008 10:30:28 GMT</pubDate></item><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 10:38:43 GMT]]></title><description><![CDATA[<p>sammynammy schrieb:</p>
<blockquote>
<p>wenn ich aber einen wert in der Deklaration größer als 60 mache, dann bekomme ich einen stack-overflow gemeldet</p>
</blockquote>
<p>Der Stack ist von der Größe her begrenzt...</p>
<p>sammynammy schrieb:</p>
<blockquote>
<p>wie kann das sein, das ist doch garnicht so groß und wie könnte ich das beheben??</p>
</blockquote>
<p>...und 216000 short-Werte finde ich nun nicht wirklich klein.</p>
<p>Zum Beheben gibt es 2 Möglichkeiten:<br />
a) Das Array dynamisch allozieren<br />
b) Schauen ob du die Stackgröße in deinen Compiler anpassen kannst</p>
<p>Besser wäre es imho ohnehin auf einen Container aus der Standardbibliothek zu wechseln.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1587794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1587794</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 25 Sep 2008 10:38:43 GMT</pubDate></item><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 16:37:17 GMT]]></title><description><![CDATA[<p>ja stimmt; hab da etwas gesagt ohne zu rechnen, ist schon viel!!</p>
<p>und was würdest du so aus der Standartlib vorschlagen?? hab da noch nicht so oft mit gearbeitet...!!<br />
und wie kann ich da etwas dynamisch machen, ich dachte immer, dass die größe von arrays beim erzeugen festgelegt werden müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588024</guid><dc:creator><![CDATA[sammynammy]]></dc:creator><pubDate>Thu, 25 Sep 2008 16:37:17 GMT</pubDate></item><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 16:44:00 GMT]]></title><description><![CDATA[<p>sammynammy schrieb:</p>
<blockquote>
<p>ja stimmt; hab da etwas gesagt ohne zu rechnen, ist schon viel!!</p>
<p>und was würdest du so aus der Standartlib vorschlagen??...</p>
</blockquote>
<p>Der Klassiker ist <a href="http://www.cppreference.com/wiki/stl/vector/start" rel="nofollow">std::vector</a>.<br />
Dem kann man beim &quot;Start&quot; (also bei der Deklaration) gleich eine Anfangsgröße mitgeben (muss mn aber nicht) ... die man aber jederzeit beliebig verändern kann.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588025</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 25 Sep 2008 16:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 17:24:17 GMT]]></title><description><![CDATA[<p>std::vector kenne ich schon, geht das denn auch dreidimensional??ich meine nämlich nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588052</guid><dc:creator><![CDATA[sammynammy]]></dc:creator><pubDate>Thu, 25 Sep 2008 17:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 17:33:30 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">vector&lt;vector&lt;vector&lt;unsigned short&gt; &gt; &gt; DreiDVector(60, vector&lt;vector&lt;unsigned short&gt; &gt;(60, vector&lt;unsigned short&gt;(60)));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1588057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588057</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Thu, 25 Sep 2008 17:33:30 GMT</pubDate></item><item><title><![CDATA[Reply to größe von unsigned short array on Thu, 25 Sep 2008 17:34:41 GMT]]></title><description><![CDATA[<p>Du kannst ihn verschachteln:</p>
<pre><code class="language-cpp">std::vector&lt;std::vector&lt;std::vector&lt;Type&gt; &gt; &gt; MyVector;
</code></pre>
<p>Die Frage ist, ob sich das lohnt, und eine Dimension (man kann auch 3 auf eine projizieren) nicht auch reichen würde. Das wird z.B. beim Füllen oder beim Durchiterieren ziemlich mühsam, da immer 3 For-Schleifen nötig sind. Trotzdem immer noch besser als ein rohes Array. Ansonsten bietet Boost auch noch Container an ( <code>boost::multiarray</code> ).</p>
<p>Man sollte auch daran denken, dass im Worst Case gerade mal 12.5% des Speicherplatzes benötigt werden, die ein dreidimensionaler <code>std::vector</code> allokiert (und bis zu seiner Zerstörung nicht mehr freigibt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588058</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 25 Sep 2008 17:34:41 GMT</pubDate></item></channel></rss>