<?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[Aufgabe zum Üben]]></title><description><![CDATA[<p>Hallo,<br />
zum Üben mache ich so Übungen.<br />
Leider komme ich bei einer nicht weiter.</p>
<p>Schreiben Sie ein Programm, das Strings in einen Vektor einliest.<br />
Kopieren Sie diesen Vektor in ein Array mit Zeichenzeigern.<br />
Weisen Sie für jedes Vektorelement ein neues Zeichenarray zu,<br />
in das Sie die Daten des Elements kopieren.<br />
Fügen sie in das Array mit Zeichenzeigern<br />
einen Zeiger auf das Zeichenarray ein.<br />
// mit Zeichenzeigern sind Arrays mit new und delete gemeint.<br />
Wie soll ich da immer ein neues Zeichenarray zuweißen?<br />
Mehrdimensionale Array darf ich nicht benutzen.<br />
Soweit bin ich schon.<br />
Aber wie soll ich für jedes Vektorelement ein neues Zeichenarray zuweißen?<br />
ich weiß ja nicht wie viele Arrays ich brauche weil ich nicht weiß<br />
wie viele eingelesen werden.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using std::vector; 
using std::cout;
using std::endl;
using std::cin;
using std::string;

int main()
{ 
   vector&lt;string&gt; svec;
   string buffer;
   while (getline(cin,buffer) )
      svec.push_back(buffer);
   char *carr = new char[];

   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/200630/aufgabe-zum-üben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 11:48:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200630.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Dec 2007 17:28:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufgabe zum Üben on Mon, 17 Dec 2007 17:28:23 GMT]]></title><description><![CDATA[<p>Hallo,<br />
zum Üben mache ich so Übungen.<br />
Leider komme ich bei einer nicht weiter.</p>
<p>Schreiben Sie ein Programm, das Strings in einen Vektor einliest.<br />
Kopieren Sie diesen Vektor in ein Array mit Zeichenzeigern.<br />
Weisen Sie für jedes Vektorelement ein neues Zeichenarray zu,<br />
in das Sie die Daten des Elements kopieren.<br />
Fügen sie in das Array mit Zeichenzeigern<br />
einen Zeiger auf das Zeichenarray ein.<br />
// mit Zeichenzeigern sind Arrays mit new und delete gemeint.<br />
Wie soll ich da immer ein neues Zeichenarray zuweißen?<br />
Mehrdimensionale Array darf ich nicht benutzen.<br />
Soweit bin ich schon.<br />
Aber wie soll ich für jedes Vektorelement ein neues Zeichenarray zuweißen?<br />
ich weiß ja nicht wie viele Arrays ich brauche weil ich nicht weiß<br />
wie viele eingelesen werden.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using std::vector; 
using std::cout;
using std::endl;
using std::cin;
using std::string;

int main()
{ 
   vector&lt;string&gt; svec;
   string buffer;
   while (getline(cin,buffer) )
      svec.push_back(buffer);
   char *carr = new char[];

   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1422169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422169</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 17 Dec 2007 17:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 10:04:31 GMT]]></title><description><![CDATA[<p>Tip dazu: du kannst herausfinden wie viele Werte in deinem Vector drinstehn mit vector&lt;T&gt;::size() Dann sowas verwenden wie</p>
<pre><code class="language-cpp">char *carr = new char[svec.size()];
/* carr füllen */
size_t vecsize = svec.size();
for (size_t i = 0; i &lt; vecsize; ++i)
  /* vector neu füllen */
</code></pre>
<p>usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422453</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Dec 2007 10:04:31 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 14:46:36 GMT]]></title><description><![CDATA[<p>ist denke ich mal sowas gemeint:</p>
<pre><code class="language-cpp">int main()
{
    std::vector&lt;std::string&gt; vec_data;
    // daten in vec_data einlesen ...
    char** arr_data(new char*[vec_data.size()](NULL));
    for (std::size_t i(0); i &lt; vec_data.size(); ++i)
    {
        arr_data[i] = new char[vec_data[i].length() + 1];
        std::strcpy(arr_data[i], vec_data[i]);
    }
    // fertig ...
    for (std::size_t i(0); i &lt; vec_data.size(); ++i)
        delete [] arr_data[i];
    delete [] arr_data;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1422636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422636</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 18 Dec 2007 14:46:36 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 15:28:56 GMT]]></title><description><![CDATA[<p>ok danke.<br />
ich habs jetzt mal so versucht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using std::vector;
using std::cout;
using std::endl;
using std::cin;
using std::string;

int main()
{
   vector&lt;string&gt; svec;
   string buffer;
   while (getline(cin,buffer) )
      svec.push_back(buffer);
   char *carr = new char[svec.size()];
   for (vector&lt;string&gt;::iterator iter = svec.begin(); iter != svec.end();      ++iter, ++carr)
      carr = *iter.c_str();
   delete[]carr;
   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
<p>Der Kompiler spuckt folgenden Fehler aus:<br />
19 'class __gnu_cxx::__normal_iterator&lt;std::string*, std::vector&lt;std::string, std::allocator<a href="std::string" rel="nofollow">std::string</a> &gt; &gt;' has no member named 'c_str'</p>
<p>Also das c_str() um den String, auf den ich mit *iter zugreife in einen cstring zu verwandeln und in dann in carr einzulesen.<br />
Warum funktioniert das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422679</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 18 Dec 2007 15:28:56 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 15:36:39 GMT]]></title><description><![CDATA[<p>Das ist ein Problem mit der Operator-Rangfolge, das bereits in C existierte - und der Grund für die Einführung von -&gt; war: Du mußt den Ausdruck klammern als &quot;(*iter).c_str()&quot; oder du verwendest &quot;iter-&gt;c_str();&quot;.</p>
<p>PS: Aber tu dir selber einen Gefallen und arbeite mit std::string anstelle von dynamischen char-Arrays - mit dem jetzigen Code würdest du dir sowieso nur den Heap zerstören.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422691</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 18 Dec 2007 15:36:39 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 15:38:07 GMT]]></title><description><![CDATA[<p>Scheint aber die (perverse) Aufgabenstellung zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422693</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 18 Dec 2007 15:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 17:28:43 GMT]]></title><description><![CDATA[<p>ok danke so geht es :xmas1:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using std::vector;
using std::cout;
using std::endl;
using std::cin;
using std::string;

int main()
{
   vector&lt;string&gt; svec;
   string buffer;
   while (getline(cin,buffer) )
      svec.push_back(buffer);
   const char *carr = new char[svec.size()];
   for (vector&lt;string&gt;::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++carr) {
      carr = (*iter).c_str();
      cout &lt;&lt; carr;
   }
   delete[]carr;
   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
<p>Hierzu hätte ich noch 2 Fragen:<br />
1. Verstehe ich nicht ganz WARUM man einen String in einen char einlesen kann.<br />
carr = (*iter).c_str();<br />
(*iter).c_str(); gibt doch einen cstring zurück (also mehrere chars) und carr erwartet doch nur einen char da es ein char Array ist !?!<br />
2. Warum zerstört dieser Code den Heap?<br />
Er funktioniert wunderbar - er gibt die gleichen Eingaben wieder aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422764</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 18 Dec 2007 17:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 17:35:53 GMT]]></title><description><![CDATA[<p>zu 1.<br />
carr ist ein const char* und (*iter).c_str() gibt einen const char* zurück. Klar kannst du den zuweisen. Es ist hier nur ziemlich sinnlos.<br />
zu 2.<br />
bei</p>
<pre><code class="language-cpp">const char *carr = new char[svec.size()];
</code></pre>
<p>allozierst du Speicher und schreibst die dazugehörige Adresse nach carr.<br />
Hier</p>
<pre><code class="language-cpp">carr = (*iter).c_str();
</code></pre>
<p>überschreibst du diesen Zeiger wieder.<br />
Hier</p>
<pre><code class="language-cpp">delete[]carr;
</code></pre>
<p>versuchts du den Speicher wieder zu löschen. carr zeigt aber jetzt auf die letzte in der Schleife zugewiesene Adresse aus svec. Hier darfst du nichts freigeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422770</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 18 Dec 2007 17:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 18:06:04 GMT]]></title><description><![CDATA[<blockquote>
<p>zu 1.<br />
carr ist ein const char* und (*iter).c_str() gibt einen const char* zurück. Klar kannst du den zuweisen. Es ist hier nur ziemlich sinnlos.</p>
</blockquote>
<p>jop schon aber wenn ich mir das so vorstelle...<br />
(*iter).c_str(); gibt also z.b.wenn ich hallo welt eingebe<br />
erstmal hallo zurück.<br />
Und carr kann ja nur einen const char aufnehmen und nicht 6 const chars (hallo+0)</p>
<p>Würde das mit einem char array auch/besser gehen?<br />
also z.b. char[100] und dann dieser bekommt dann (*iter).c_str() zugewiesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422783</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 18 Dec 2007 18:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 18:17:34 GMT]]></title><description><![CDATA[<p>carr ist kein const char sondern ein const char* und du übergibst an der Stelle keinen String sondern nur einen Zeiger darauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422787</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 18 Dec 2007 18:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Tue, 18 Dec 2007 19:03:11 GMT]]></title><description><![CDATA[<p>ok danke jetzt habe ich mir was anderes überlegt.<br />
Ich gebe jetzt die einzelnen buchstaben der Strings in dem Vector<br />
zurück und diese kommen in das array.<br />
Aber das Programm funktioniert mal wieder nicht richtig zur Laufzeit.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using std::vector;
using std::cout;
using std::endl;
using std::cin;
using std::string;

int main()
{
   vector&lt;string&gt; svec;
   string buffer;
   while (getline(cin,buffer) )
      svec.push_back(buffer);
   char *carr = new char[svec.size()];
   for (vector&lt;string&gt;::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++carr) { // auf string zugreifen
      for (int i = 0; i != (*iter).size(); ++i, ++carr)   // auf buchstabe zugreifen
      *carr = (*iter)[i];   // alle buchstaben in carr array übergeben
      cout &lt;&lt; *carr;             // und diese ausgeben
   }
   delete[]carr; 
   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1422803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422803</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 18 Dec 2007 19:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Wed, 19 Dec 2007 00:28:41 GMT]]></title><description><![CDATA[<p>Versuchs mal so. (ungetestet weil zu müde)</p>
<pre><code class="language-cpp">int main()
{
   vector&lt;string&gt; svec;
   string buffer;
   size_t maxlen(0);
   while (getline(cin,buffer) )
   {
      svec.push_back(buffer);
      maxlen = max(maxlen,buffer.size());
   }
   size_t count(svec.size());
   char **carr = new char*[count];
   for( size_t i=0; i&lt;count; ++i)
      carr[i] = new char[maxlen];
   for (vector&lt;string&gt;::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++carr) { // auf string zugreifen
      strcpy(carr,iter-&gt;c_str()); 
      cout &lt;&lt; *carr;             // und diese ausgeben
   }
   for( size_t i=0; i&lt;count; ++i)
      delete[] carr[i];
   delete[]carr;
   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1422903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422903</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 19 Dec 2007 00:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Wed, 19 Dec 2007 19:37:07 GMT]]></title><description><![CDATA[<p>ok vielen dank so gehts.<br />
Weiß noch einer warum das obere Programm nicht Funktioniert hat?<br />
Also das mit die Buchstaben einzeln übergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423410</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 19 Dec 2007 19:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Thu, 20 Dec 2007 09:12:25 GMT]]></title><description><![CDATA[<p>Weil wahrscheinlich dein carr zu klein ist. Du lengst es mit der Größe der Anzahl der eingelesenen Strings an willst aber die Zeichen aus den einzelnen Strings reinkopieren. Natürlich kann einer der Strings mehr Zeichen enthalten als in carr reinpassen. Außerdem dereferenzierst du carr beim Ausgabe. Da kommt dann nur das erste zeichen raus.<br />
carr ist eben ein Array für einen String der angegeben Größe. Du brauchst hier aber ein Array von Strings.<br />
Wenn du die Strings nicht speichern willst geht auch das hier.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using std::vector;
using std::cout;
using std::endl;
using std::cin;
using std::string;

int main()
{
   vector&lt;string&gt; svec;
   string buffer;
   size_t maxlen(0);
   while (getline(cin,buffer) )
   {
      svec.push_back(buffer);
      maxlen = max(maxlen,buffer.size());
   }   
   char *carr = new char[maxlen+1];
   for (vector&lt;string&gt;::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++carr) { // auf string zugreifen
      for (int i = 0; i &lt; iter-&gt;size(); ++i, ++carr)   // auf buchstabe zugreifen
      *carr = (*iter)[i];   // alle buchstaben in carr array übergeben
      carr[iter-&gt;size()] = '\0'; //Endnullbyte anfügen
      cout &lt;&lt; carr;             // und diese ausgeben
   }
   delete[] carr;
   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1423605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423605</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 20 Dec 2007 09:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Thu, 20 Dec 2007 12:00:30 GMT]]></title><description><![CDATA[<p>Schallalaa guckt mal auf die 1. seite <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@braunstein</a> ... vllt fällt dir was auf ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423720</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 20 Dec 2007 12:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Thu, 20 Dec 2007 13:25:54 GMT]]></title><description><![CDATA[<p>Danke Devil das funktioniert zwar,<br />
aber das hier:</p>
<pre><code class="language-cpp">char** arr_data(new char*[vec_data.size()](NULL));
</code></pre>
<p>hab ich noch nicht gelernt in meinem Buch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423802</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 20 Dec 2007 13:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Thu, 20 Dec 2007 13:46:51 GMT]]></title><description><![CDATA[<p>Hmm in dem Fall nicht wirklich nötig (also das &quot;(NULL)&quot;), bewirkt aber (sollte es zumindest), dass alle c-strings (char*) mit NULL initialisiert werden.</p>
<pre><code class="language-cpp">int main()
{
    std::vector&lt;std::string&gt; vec_data;
    // daten in vec_data einlesen ...
    char** arr_data(new char*[vec_data.size()](NULL)); // array auf c-strings anlegen (c-string = char-array mit Nullterminierungszeichen) mit der Größe deines Vectors.
    for (std::size_t i(0); i &lt; vec_data.size(); ++i)
    {
        arr_data[i] = new char[vec_data[i].length() + 1]; // c-string mit Größe des entsprechenden Elements des Vectors anlegen
                                                          // + 1 für Nullterminierung!
        std::strcpy(arr_data[i], vec_data[i].c_str()); // c-string kopieren (da c-string groß genug, automatische Nullterminierung!
    }
    // fertig ...
    for (std::size_t i(0); i &lt; vec_data.size(); ++i) // vec_data.size() darf sich nicht verändert haben!
        delete [] arr_data[i]; // c-string löschen
    delete [] arr_data;
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423823</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 20 Dec 2007 13:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Thu, 20 Dec 2007 13:58:46 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>Hmm in dem Fall nicht wirklich nötig (also das &quot;(NULL)&quot;), bewirkt aber (sollte es zumindest), dass alle c-strings (char*) mit NULL initialisiert werden.</p>
</blockquote>
<p>ist unzulässig. Möglich ist bei Arrays nur Defaultinitialisierung.</p>
<pre><code class="language-cpp">char** arr_data = new char*[vec_data.size()]();
</code></pre>
<p>Irgendein Grund, ständig alles zu klammern? Das ist so furchtbar unübersichtlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423840</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 20 Dec 2007 13:58:46 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Fri, 21 Dec 2007 06:20:32 GMT]]></title><description><![CDATA[<p>char** arr_data(new char*[vec_data.size()](NULL));<br />
das mit NULL verstehe ich schon aber das char**<br />
also Zeiger auf Zeiger oder wie kann ich das verstehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424237</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 21 Dec 2007 06:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Fri, 21 Dec 2007 06:44:23 GMT]]></title><description><![CDATA[<p>Flashgott schrieb:</p>
<blockquote>
<p>char** arr_data(new char*[vec_data.size()](NULL));<br />
das mit NULL verstehe ich schon aber das char**<br />
also Zeiger auf Zeiger oder wie kann ich das verstehen?</p>
</blockquote>
<p>Richtig verstanden - arr_data ist ein Zeiger auf einen (char)Zeiger (und wird verwendet als Array von C-style Strings).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424239</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 21 Dec 2007 06:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Sun, 23 Dec 2007 10:16:06 GMT]]></title><description><![CDATA[<p>warum verwendet man nicht einfach einen Zeiger?</p>
<pre><code class="language-cpp">char* arr_data = new char[vec_data.size()]();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1425098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425098</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 23 Dec 2007 10:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to Aufgabe zum Üben on Sun, 23 Dec 2007 10:53:23 GMT]]></title><description><![CDATA[<p>? Doofe Frage, nachdem das hier schon von 5 Leuten oder so erläutert wurde ...</p>
<pre><code class="language-cpp">char = /* Zeichen */
char* + '\0' = /* c-string (bzw. String) */
char** = /* Array von c-string's (bzw. String's) */
</code></pre>
<p>In deinem Fall hast du dann für einen ganzen String nur ein Zeichen zur verfügung, was dann bestenfalls für ein Nullterminierungzeichen reicht <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/1425106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425106</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 23 Dec 2007 10:53:23 GMT</pubDate></item></channel></rss>