<?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[Fragen zu Arrays in C++]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>dachte, dass ich das hier schon mal gelesen habe, aber die Suche brachte kein Ergebnis.</p>
<p>Kann man denn die Inhalte eines STL-Konstruktes wie list oder vector irgendwie als Array bekommen?</p>
<p>Wie erzeugt man denn zur Laufzeit ein Array von Strukturen?</p>
<p>Mit:</p>
<pre><code class="language-cpp">...
void Klasse::Methode(Vector&lt;irgendwas *&gt; vektor)
{
    struct Struktur array[vektor.size()];
    ...
}
</code></pre>
<p>dürfte es wohl nicht klappen, oder?</p>
<p>Wie verwendet man denn new mit Arrays aus Strukturen?</p>
<p>Danke schon mal<br />
Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147659/fragen-zu-arrays-in-c</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 11:23:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147659.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 May 2006 20:54:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Thu, 18 May 2006 20:54:30 GMT]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>dachte, dass ich das hier schon mal gelesen habe, aber die Suche brachte kein Ergebnis.</p>
<p>Kann man denn die Inhalte eines STL-Konstruktes wie list oder vector irgendwie als Array bekommen?</p>
<p>Wie erzeugt man denn zur Laufzeit ein Array von Strukturen?</p>
<p>Mit:</p>
<pre><code class="language-cpp">...
void Klasse::Methode(Vector&lt;irgendwas *&gt; vektor)
{
    struct Struktur array[vektor.size()];
    ...
}
</code></pre>
<p>dürfte es wohl nicht klappen, oder?</p>
<p>Wie verwendet man denn new mit Arrays aus Strukturen?</p>
<p>Danke schon mal<br />
Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060508</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Thu, 18 May 2006 20:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Thu, 18 May 2006 21:46:07 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Reth schrieb:</p>
<blockquote>
<p>Kann man denn die Inhalte eines STL-Konstruktes wie list oder vector irgendwie als Array bekommen?</p>
</blockquote>
<p>Wieso? Mit Vektoren sind ja da um die Handhabung mir Array's zu erleichtern bzw sie zu vermeiden.</p>
<p>Reth schrieb:</p>
<blockquote>
<p>Wie erzeugt man denn zur Laufzeit ein Array von Strukturen?</p>
</blockquote>
<pre><code class="language-cpp">Struktur *array = new Struktur[vektor.size()];
</code></pre>
<p>Reth schrieb:</p>
<blockquote>
<p>Mit:</p>
<pre><code class="language-cpp">struct Struktur array[vektor.size()];
</code></pre>
<p>dürfte es wohl nicht klappen, oder?</p>
</blockquote>
<p>Ja, weil die Größe des Arrays zur Compile Zeit bekannt sein muss,<br />
es sei den du allozierst Speicher zur Laufzeit mit new (s.o.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060527</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 18 May 2006 21:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 08:28:01 GMT]]></title><description><![CDATA[<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Hi,<br />
Wieso? Mit Vektoren sind ja da um die Handhabung mir Array's zu erleichtern bzw sie zu vermeiden.</p>
</blockquote>
<p>Muss eine Funktion aufrufen, die ein Array von Strukturen erwartet (genauer gesagt einen Zeiger darauf).</p>
<p>Freak_Coder schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Struktur *array = new Struktur[vektor.size()];
</code></pre>
</blockquote>
<p>Brauch ich hier keinen sizeof der Struktur?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060680</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Fri, 19 May 2006 08:28:01 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 08:38:37 GMT]]></title><description><![CDATA[<p>No, wir sind ja hier nicht in der C-Welt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1060696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060696</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 19 May 2006 08:38:37 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 08:42:27 GMT]]></title><description><![CDATA[<p>Reth schrieb:</p>
<blockquote>
<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Hi,<br />
Wieso? Mit Vektoren sind ja da um die Handhabung mir Array's zu erleichtern bzw sie zu vermeiden.</p>
</blockquote>
<p>Muss eine Funktion aufrufen, die ein Array von Strukturen erwartet (genauer gesagt einen Zeiger darauf).</p>
</blockquote>
<p>Das ist zwar nicht unbedingt portabel, aber vec.begin() ist häufig ein einfacher Zeiger auf das drunterliegende Array.</p>
<p>(Ist zwar vermutlich Overkill, aber basic_string&lt;&gt;'s haben eine direkte Zugriffsmethode namens data(), mit denen du das unterliegende Array direkt erreichst)</p>
<blockquote>
<p>Freak_Coder schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Struktur *array = new Struktur[vektor.size()];
</code></pre>
</blockquote>
<p>Brauch ich hier keinen sizeof der Struktur?</p>
</blockquote>
<p>Nein, brauchst du nicht - new weiß im Gegensatz zu malloc(), wie groß die verwendeten Datenblöcke werden müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060700</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 19 May 2006 08:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 19:53:38 GMT]]></title><description><![CDATA[<p>Vielen Dank für eure Antworten!</p>
<p>Eine Frage hab ich aber noch.<br />
Kann ich statt:</p>
<pre><code class="language-cpp">Struktur *array = new Struktur[vektor.size()];
</code></pre>
<p>auch folgendes in einer Methode machen:</p>
<pre><code class="language-cpp">Struktur *array = NULL;
</code></pre>
<p>um bei einem delete[] vorher prüfen zu können,<br />
ob das Array überhaupt angelegt wurde.</p>
<p>Oder ist es delete[] egal, ob ein Array NULL ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061245</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Fri, 19 May 2006 19:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 20:22:33 GMT]]></title><description><![CDATA[<p>Klar kannst du das machen, aber &quot;normal&quot; für C++ ist eigentlich:</p>
<pre><code class="language-cpp">Struktur *array = 0;
</code></pre>
<p>Und es ist richtig, vor einem delete zu überprüfen, ob das Array existiert.</p>
<p>P.S.: Alle, die darüber diskutieren wollen, ob man NULL oder 0 verwendet, sollen das tun, aber nicht hier.</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Das ist zwar nicht unbedingt portabel, aber vec.begin() ist häufig ein einfacher Zeiger auf das drunterliegende Array.</p>
</blockquote>
<p>Hmm, ich denke &amp;vec[0] ist da sicherer, das müsste auch portabel sein, denn so bekommst du garantiert (wenn nicht irgend ein Hornochse den unären &amp;-Operator umdefiniert hat ;)) einen Zeiger auf den Anfang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061268</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 19 May 2006 20:22:33 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 20:50:35 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>.filmor schrieb:</p>
<blockquote>
<p>Hmm, ich denke &amp;vec[0] ist da sicherer, das müsste auch portabel sein, denn so bekommst du garantiert (wenn nicht irgend ein Hornochse den unären &amp;-Operator umdefiniert hat ;)) einen Zeiger auf den Anfang.</p>
</blockquote>
<p>Dann müsste ich aber davon ausgehen, dass die verwendete STL-Vectorimplementierung die Daten wirklich in einem Array ablegt, in dem sie hintereinanderliegen (und nicht z.B. in einer verketteten Liste).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061283</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Fri, 19 May 2006 20:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 20:55:03 GMT]]></title><description><![CDATA[<p>Das ist AFAIK so festgelegt. Ein STL-Vector muss die Daten in einem zusammenhängenden Block anlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061286</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 19 May 2006 20:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Fri, 19 May 2006 21:11:32 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>Das ist AFAIK so festgelegt. Ein STL-Vector muss die Daten in einem zusammenhängenden Block anlegen.</p>
</blockquote>
<p>Anders geht des doch net, wenn man die für vector definierten O()'s einhalten will, oder? Aber ich glaube nicht, dass es so festgelegt ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061290</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Fri, 19 May 2006 21:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Sat, 20 May 2006 19:20:14 GMT]]></title><description><![CDATA[<p>Ja stimmt! Die O()s.</p>
<p>Aber die könnte man evtl. auch einhalten, wenn man eine verkette Liste verwenden würde und auf jeden Eintrag nochmals einen Zeiger hätte und diese Zeiger dann in einem Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061828</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Sat, 20 May 2006 19:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Sat, 20 May 2006 19:34:23 GMT]]></title><description><![CDATA[<p>vector legt seine daten in einem array ab, in C++98 war das noch offen gelassen (aber jede implementation tut es), in C++03 wurde das dann explizit in den standard aufgenommen. das standard-idiom, um einen zeiger zu bekommen, ist im übrigen &amp;*container.begin() - das wird in der bibliothek auch verwendet (und ist der grund, warum operator&amp; für solche objekte nicht überladen werden darf (oder zumindest nicht so, das etwas anderes herauskommt). daraus, dass vector seine daten in einem array speichert, ist allerdings keineswegs zu folgern, dass seine iteratoren zeiger sein müssen. die bedingungen sind so formuliert, dass sie es sein können, aber nichts in der standardbibliothek erfordert das explizit - denkbar sind z.b. 'checked'-iteratoren, die die grenzen des vectors beim zugriff überprüfen.<br />
P.S. aus den O()s kann man nicht wirklich auf die implementation von vector schließen: ein deque genügt ebenfalls allen komplexitätsanforderungen eines vectors, kann allerdings keineswegs als array implementiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061839</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 20 May 2006 19:34:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Sat, 20 May 2006 20:55:37 GMT]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Hi,</p>
<pre><code class="language-cpp">Struktur *array = new Struktur[vektor.size()];
</code></pre>
</blockquote>
<p>das funzt leider nicht so recht (hab da wohl noch einen Fehler).<br />
Bei:</p>
<pre><code class="language-cpp">struct Struktur *s;

s = new struct Struktur[vektor.size()];
</code></pre>
<p>Sacht mir der G++: Incompatible types in assignment of 'Struktur *' to 'Strukur[0]'</p>
<p>Muss ich da noch ein &amp; vor new stellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061875</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Sat, 20 May 2006 20:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Sat, 20 May 2006 21:09:18 GMT]]></title><description><![CDATA[<p>Reth schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct Struktur *s;

s = new struct Struktur[vektor.size()];
</code></pre>
</blockquote>
<p>das wiederholen von struct ist nicht notwendig (ich bin nicht mal sicher, ob das hier überhaupt zulässig ist). C++ hat keinen getrennten namensraum für tagnamen. es könnte höchtens dann nötig sein, wenn Struct zuvor nicht deklariert wurde - aber da new nicht mit unvollständigen typen verwendet werden kann, spielt das hier keine rolle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061877</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 20 May 2006 21:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Sat, 20 May 2006 22:38:46 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>Und es ist richtig, vor einem delete zu überprüfen, ob das Array existiert.</p>
</blockquote>
<p>delete auf 0 macht garnix.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061895</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sat, 20 May 2006 22:38:46 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Sat, 20 May 2006 23:48:08 GMT]]></title><description><![CDATA[<p>Reth schrieb:</p>
<blockquote>
<p>Hallo nochmal,</p>
<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Hi,</p>
<pre><code class="language-cpp">Struktur *array = new Struktur[vektor.size()];
</code></pre>
</blockquote>
<p>das funzt leider nicht so recht (hab da wohl noch einen Fehler).<br />
Bei:</p>
<pre><code class="language-cpp">struct Struktur *s;

s = new struct Struktur[vektor.size()];
</code></pre>
<p>Sacht mir der G++: Incompatible types in assignment of 'Struktur *' to 'Strukur[0]'</p>
<p>Muss ich da noch ein &amp; vor new stellen?</p>
</blockquote>
<p>Naja <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> , ich lasse ja nicht umsonst das struct weg...</p>
<p>In C++ brauchst du es NICHT mehr. Du musst nicht betonen das eine Struktur ne Struktur ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061909</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 20 May 2006 23:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Arrays in C++ on Mon, 22 May 2006 09:49:57 GMT]]></title><description><![CDATA[<p>Danke schön!</p>
<p>Mit ohne</p>
<pre><code class="language-cpp">struct
</code></pre>
<p>nimmts der Compiler zumindest schon mal!</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062626</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Mon, 22 May 2006 09:49:57 GMT</pubDate></item></channel></rss>