<?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[Zeichenarray in vector speichern]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Schleife die mehrmals durchlaufen wird, in jedem Schleifendurchlauf werden Zeichen erzeugt jetzt möchte ich die Zeichen in einem vector speichern aber es klappt irgednwie nicht (ich will keinen std::string benutzen):</p>
<pre><code class="language-cpp">vector&lt;char *&gt;vec;
for(int i=0;i&lt;10;i++)
{
  char *p = new char[4];
  p[0] = a.getChar(i);
  p[0] = a.getChar(i+1);
  p[0] = a.getChar(i+2);
  p[0] = a.getChar(i+3);

  vec.push_back(p);
}
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143525/zeichenarray-in-vector-speichern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 09:19:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143525.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Apr 2006 13:28:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 13:28:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Schleife die mehrmals durchlaufen wird, in jedem Schleifendurchlauf werden Zeichen erzeugt jetzt möchte ich die Zeichen in einem vector speichern aber es klappt irgednwie nicht (ich will keinen std::string benutzen):</p>
<pre><code class="language-cpp">vector&lt;char *&gt;vec;
for(int i=0;i&lt;10;i++)
{
  char *p = new char[4];
  p[0] = a.getChar(i);
  p[0] = a.getChar(i+1);
  p[0] = a.getChar(i+2);
  p[0] = a.getChar(i+3);

  vec.push_back(p);
}
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033773</guid><dc:creator><![CDATA[Kazuo]]></dc:creator><pubDate>Sun, 09 Apr 2006 13:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 14:15:18 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Sollen wirklich alle 4 erstellten Chars in das erste Feld des C-Strings? Ich bezweifle das.<br />
Außerdem ist für ein vollständigen C-Array immer noch ein abschließendes 0-Char notwendig, für den aber bei dir noch nichts reserviert und zugewiesen wird.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033812</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 09 Apr 2006 14:15:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 14:35:33 GMT]]></title><description><![CDATA[<p>Ja das stimmt das ist so natuerlich falsch, so sollte es heißen:</p>
<p>[cpp]<br />
vector&lt;char *&gt;vec;<br />
for(int i=0;i&lt;10;i++)<br />
{<br />
char *p = new char[4];<br />
p[0] = a.getChar(i);<br />
p[1] = a.getChar(i+1);<br />
p[2] = a.getChar(i+2);<br />
p[3] = a.getChar(i+3);<br />
p[4] = '\0';</p>
<p>vec.push_back(p);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033849</guid><dc:creator><![CDATA[Kazuo]]></dc:creator><pubDate>Sun, 09 Apr 2006 14:35:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 14:40:21 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>in C/C++ hat ein Array der Größe x immer die Elemente von 0 bis x-1. Du must also deine Grenze erhöhen</p>
<pre><code class="language-cpp">char *p = new char[5];
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033851</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 09 Apr 2006 14:40:21 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 15:21:16 GMT]]></title><description><![CDATA[<p>Jetzt klappt es ich erzeuge in jedem Schleifendurchlauf einen Zeichenfolge und speicher sie dann im Vector. Muss man den Speicherbereich wieder freigeben ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033877</guid><dc:creator><![CDATA[Kazuo]]></dc:creator><pubDate>Sun, 09 Apr 2006 15:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 15:24:30 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ja, der vector speichert nur die Pointer, den Speicherbereich der Pointer must du iterativ selber wieder freigeben.</p>
<p>/Edit : warum benutzt du nicht eigentlich so einen vector?</p>
<pre><code class="language-cpp">std::vector&lt;char[5]&gt;
</code></pre>
<p>dann must du keinerlei eigene Speicheroperationen durchführen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033879</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 09 Apr 2006 15:24:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 17:54:39 GMT]]></title><description><![CDATA[<p>Wenn ich das so machen spuckt mir der Compiler Fehler aus:</p>
<pre><code class="language-cpp">vector&lt;char[5]&gt;vecx;
char p[5];
p[0] = '1';
p[1] = '2';
p[2] = 's';
p[3] = 'k';
p[4] = '\0';
vecx.push_back(p);
</code></pre>
<blockquote>
<p>'Initialisierung': 'const char [5]' kann nicht in 'char [5]' konvertiert werden</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1034014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034014</guid><dc:creator><![CDATA[Kazuo]]></dc:creator><pubDate>Sun, 09 Apr 2006 17:54:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Sun, 09 Apr 2006 18:07:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>sorry stimmt, das geht nicht. Weil char[5] nicht kopierbar ist.<br />
Also bleibts bei dem selber verwalten, und selber wieder aufräumen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034025</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 09 Apr 2006 18:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenarray in vector speichern on Mon, 10 Apr 2006 19:21:05 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>sorry stimmt, das geht nicht. Weil char[5] nicht kopierbar ist.<br />
Also bleibts bei dem selber verwalten, und selber wieder aufräumen.</p>
</blockquote>
<p>Es gibt noch eine Möglichkeit. Man packe das Array in eine Struct - etwa so:</p>
<pre><code class="language-cpp">struct char_array
{
    char&amp; operator[]( unsigned i ) { return m_data[i]; }
    char m_data[5];
};

    // -- Anwendung
    vector&lt; char_array &gt; vecx;
    char_array p;
    p[0] = '1';
    p[1] = '2';
    p[2] = 's';
    p[3] = 'k';
    p[4] = '\0';
    vecx.push_back(p);
</code></pre>
<p>Wenn man char_array noch mit einem Assignment-Operator für C-Strings ausstattet, wird's übersichtlicher</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;  // copy
#include &lt;cassert&gt;
#include &lt;cstring&gt;    // strlen

struct char_array
{
    enum { MY_SIZE = 5 };
    char&amp; operator[]( unsigned i ) { assert( i &lt; MY_SIZE ); return m_data[i]; }
    char_array&amp; operator=( const char* txt )
    {
        using namespace std;
        assert( strlen( txt ) &lt; MY_SIZE );
        copy( txt, txt + strlen( txt ), m_data );
        return *this;
    }

    char m_data[5];
};

    // -- Anwendung
    vector&lt; char_array &gt; vecx;
    char_array p;
    p = &quot;12sk&quot;;
    vecx.push_back(p);
</code></pre>
<p>.. bei weiteren Ausbau von char_array ist man schnell bei <a href="http://www.boost.org/doc/html/array.html" rel="nofollow">boost::array</a>.</p>
<p>Kazuo schrieb:</p>
<blockquote>
<p>... (ich will keinen std::string benutzen)</p>
</blockquote>
<p>Warum nicht?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034768</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 10 Apr 2006 19:21:05 GMT</pubDate></item></channel></rss>