<?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[Dynamisches array und Templates]]></title><description><![CDATA[<p>hi leute</p>
<p>ich bin hier grad einfach mal so snake am nachprogrammieren und hab folgendes problem</p>
<p>ich habe eine funktion(ein template) zum erzeugen des 2d arrays geschrieben</p>
<pre><code class="language-cpp">template&lt;class _T&gt;		// erzeugt ein 2 dimensionales dynamsiches Array
inline void Create2DField(_T** field, UINT x, UINT y)
{
	field = new _T*[x];
	for(UINT i = 0; i &lt; x; ++i)
		field[i] = new _T[y];
}
</code></pre>
<p>das ist auch ganz gut und klappt</p>
<p>aber wenn ich das array jez füllen möchte (auch eine template funktion)<br />
meint der geht nicht 8der fehler wenn man auf den falschen speicher zugreift)</p>
<pre><code class="language-cpp">template&lt;class _T&gt;		// füllt eine 2 dimensionales Array mit 0
inline void Fill2DField(_T** field, UINT x, UINT y, _T const&amp; zahl = _T(0) )
{
	UINT i, j;
	for(i = 0; i &lt; x; ++i)
	{
		for(j = 0; j &lt; y; ++j)
		{
			field[i][j] = zahl;
		}
	}
}
</code></pre>
<p>die funktionsaufrufe:</p>
<pre><code class="language-cpp">void Snake::GameInit(int const&amp; x, int const&amp; y)
{
	this-&gt;zeile = x;               //zeile und spalte sind private member (beides unsigned int) der klasse Snake
	this-&gt;spalte = y;

	Create2DField(spielfeld, zeile, spalte);               // spielfeld =&gt; int **spielfeld;
	Fill2DField(spielfeld, zeile, spalte, int(EMPTY));    // #define EMPTY 0
</code></pre>
<p>eigendlich schriebe ich nicht ausserhalb der grenzend es arrays oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214203/dynamisches-array-und-templates</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 17:31:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214203.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 May 2008 20:35:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamisches array und Templates on Tue, 27 May 2008 11:21:27 GMT]]></title><description><![CDATA[<p>hi leute</p>
<p>ich bin hier grad einfach mal so snake am nachprogrammieren und hab folgendes problem</p>
<p>ich habe eine funktion(ein template) zum erzeugen des 2d arrays geschrieben</p>
<pre><code class="language-cpp">template&lt;class _T&gt;		// erzeugt ein 2 dimensionales dynamsiches Array
inline void Create2DField(_T** field, UINT x, UINT y)
{
	field = new _T*[x];
	for(UINT i = 0; i &lt; x; ++i)
		field[i] = new _T[y];
}
</code></pre>
<p>das ist auch ganz gut und klappt</p>
<p>aber wenn ich das array jez füllen möchte (auch eine template funktion)<br />
meint der geht nicht 8der fehler wenn man auf den falschen speicher zugreift)</p>
<pre><code class="language-cpp">template&lt;class _T&gt;		// füllt eine 2 dimensionales Array mit 0
inline void Fill2DField(_T** field, UINT x, UINT y, _T const&amp; zahl = _T(0) )
{
	UINT i, j;
	for(i = 0; i &lt; x; ++i)
	{
		for(j = 0; j &lt; y; ++j)
		{
			field[i][j] = zahl;
		}
	}
}
</code></pre>
<p>die funktionsaufrufe:</p>
<pre><code class="language-cpp">void Snake::GameInit(int const&amp; x, int const&amp; y)
{
	this-&gt;zeile = x;               //zeile und spalte sind private member (beides unsigned int) der klasse Snake
	this-&gt;spalte = y;

	Create2DField(spielfeld, zeile, spalte);               // spielfeld =&gt; int **spielfeld;
	Fill2DField(spielfeld, zeile, spalte, int(EMPTY));    // #define EMPTY 0
</code></pre>
<p>eigendlich schriebe ich nicht ausserhalb der grenzend es arrays oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517229</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 27 May 2008 11:21:27 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches array und Templates on Mon, 26 May 2008 21:12:58 GMT]]></title><description><![CDATA[<p>Wäre nett, wenn du uns ersteinmal die genaue Fehlermeldung zeigst <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1517257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517257</guid><dc:creator><![CDATA[MR.ABJ]]></dc:creator><pubDate>Mon, 26 May 2008 21:12:58 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches array und Templates on Mon, 26 May 2008 21:22:04 GMT]]></title><description><![CDATA[<p>denk dir mal, das array wäre kein array sondern einfach nur ein zeiger auf int.<br />
deine funktion würde so aussehen:</p>
<pre><code class="language-cpp">void create (int* i)
{
   i = new int;
}
</code></pre>
<p>lösung (faustregel): verwende rückgabewerte, wenn du werte zurückgibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517258</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Mon, 26 May 2008 21:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches array und Templates on Tue, 27 May 2008 11:19:17 GMT]]></title><description><![CDATA[<p>Visual C++ 2008 schrieb:</p>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x00413ee8 in Snake.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.</p>
</blockquote>
<p>ob array oder zeiger auf irgendwas<br />
ist in dem moment völlig egal<br />
ich brauch nur ein 2dimensionales array, dynamisch erzeugt, ohne STL, und das relativ schnell</p>
<p>liegt das an den templates oder sosntwo?<br />
also eig sollte das da nicht dran liegen...</p>
<p>aber da fällt mir grad noch was ein (bin ja shcon mehrmals mit dem debugmodus drüber gegangen)<br />
der hat den zeiger an die funktion &quot;Create2DField&quot; übergeben und das array wurde erzeugt, von da an war innerhalb der funktion der zeiger ganz ok und man konnte die werte auslesen(mit dem debugmodus von VC++ 2008)<br />
aber als der aus der funktion gesprungen ist war konnte der zeiger nicht merh ausgewertet werden...</p>
<p>ach so meinst du das:</p>
<pre><code class="language-cpp">template&lt;class _T&gt;
_T&amp; Create2DField(_T** liste, UINT x, UINT y)
{
    // bla bla mit new und so erzeugen
    return &amp;liste;
}
</code></pre>
<p>meinst du das so ungefähr?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517548</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 27 May 2008 11:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches array und Templates on Tue, 27 May 2008 11:20:45 GMT]]></title><description><![CDATA[<p>Wie wär's mit T** Create2DField(UINT x, UINT y)?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517550</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 11:20:45 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisches array und Templates on Tue, 27 May 2008 11:43:50 GMT]]></title><description><![CDATA[<p>jop hab ich grad gemacht und es funktioniert -.-'</p>
<p>naja hatte noch nicht viel mit mehrdimensionalen arrays zu tun die dynamisch waren, und es wird auch meistens nicht viel dazu geschrieben in büchern oder sonstwo</p>
<p>(hab von ulrich breyman C++ einführung....: da wird das mal kurz auf enr halben seite erwähnt aber auch nicht so super dokumentiert, und wie man die an funktionen übergibt is auch wenig zu geschrieben)</p>
<p>naja so klappts</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517565</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 27 May 2008 11:43:50 GMT</pubDate></item></channel></rss>