<?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[Vector mit Hilfe von Pointer füllen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem bei dem Versuch, Inhalt in einen char-Vektor mit Hilfe eines Pointers zu zu kopieren:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;

using namespace std;

void add(void* element){
	vector&lt;char&gt;* b = new vector&lt;char&gt;;
	 for(int i = 0; i &lt; 10; i++)
     b-&gt;push_back(0); 
     char* e = (char*)element;
     for(int i = 0; i &lt; 10; i++)
     b[i]=e[i];
}

char array1[10];
char* point1=&amp;array1[0];

int main(){
	add(array1);
}
</code></pre>
<p>Ich erhalte beim Kompilieren folgende Fehlermeldung:</p>
<blockquote>
<p>no match for ‘operator=’ in ‘*((+(((unsigned int)i) * 12u)) + b) = *(e + (+(unsigned int)i))’</p>
</blockquote>
<p>Welchen Fehler begehe ich beim Kopieren des Character-Pointers?</p>
<p>Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246579/vector-mit-hilfe-von-pointer-füllen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 00:21:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246579.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Jul 2009 07:13:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector mit Hilfe von Pointer füllen on Thu, 30 Jul 2009 07:13:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem bei dem Versuch, Inhalt in einen char-Vektor mit Hilfe eines Pointers zu zu kopieren:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;

using namespace std;

void add(void* element){
	vector&lt;char&gt;* b = new vector&lt;char&gt;;
	 for(int i = 0; i &lt; 10; i++)
     b-&gt;push_back(0); 
     char* e = (char*)element;
     for(int i = 0; i &lt; 10; i++)
     b[i]=e[i];
}

char array1[10];
char* point1=&amp;array1[0];

int main(){
	add(array1);
}
</code></pre>
<p>Ich erhalte beim Kompilieren folgende Fehlermeldung:</p>
<blockquote>
<p>no match for ‘operator=’ in ‘*((+(((unsigned int)i) * 12u)) + b) = *(e + (+(unsigned int)i))’</p>
</blockquote>
<p>Welchen Fehler begehe ich beim Kopieren des Character-Pointers?</p>
<p>Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752047</guid><dc:creator><![CDATA[Martin2000]]></dc:creator><pubDate>Thu, 30 Jul 2009 07:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit Hilfe von Pointer füllen on Thu, 30 Jul 2009 07:21:31 GMT]]></title><description><![CDATA[<p>Ich schätze, es müsste so gehen:</p>
<pre><code class="language-cpp">(*b)[i]=e[i];
</code></pre>
<p>Sonst versuchst du ja, einen vector zuzuweisen.</p>
<p>EDIT: Mal abgesehen davon, dass ich im Moment den rechten Sinn nicht erkennen kann, warum du hier einen Zeiger auf einen vector nehmen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752051</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 30 Jul 2009 07:21:31 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit Hilfe von Pointer füllen on Thu, 30 Jul 2009 07:24:28 GMT]]></title><description><![CDATA[<p>b[i] ist ein Element eines Arrays of vector&lt;char&gt;, also ein vector&lt;char&gt;. e[i] ist ein Element eines Arrays of char, also ein char. Du versuchst also, eine Banane in eine Kiste von Bananen zu verwandeln (nicht: einzufügen!)</p>
<p>Was willst Du denn überhaupt machen? Der Code sieht ziemlich sinnlos aus, so dass man das nicht wirklich erraten kann. Meinst Du vielleicht vector&lt;char*&gt; statt vector&lt;char&gt;*?</p>
<p>Achja: Was soll das void-gecaste? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752053</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 30 Jul 2009 07:24:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit Hilfe von Pointer füllen on Thu, 30 Jul 2009 07:40:38 GMT]]></title><description><![CDATA[<p>Vielen Dank für Eure Antworten.</p>
<p>Ja, der Code ist auch relativ sinnlos! Ich habe nur versucht, eine Aufgabe aus Bruce Eckle's C++-Buch zu lösen (chapter 4, aufgabe 16).</p>
<p>Was ich jedoch nicht verstehe:</p>
<blockquote>
<p>b[i] ist ein Element eines Arrays of vector&lt;char&gt;, also ein vector&lt;char&gt;. e[i] ist ein Element eines Arrays of char, also ein char. Du versuchst also, eine Banane in eine Kiste von Bananen zu verwandeln (nicht: einzufügen!)</p>
</blockquote>
<p>Mit Hilfe eines Vectors wird doch ein Array mit flexibler Speichergröße erzeugt. Warum kann ich mit Hilfe des Pointers b[] nicht direkt auf die Speicherplätze, analog zum char-Array zugreifen?<br />
Liegt es daran, das der Pointer b nicht direkt auf den char-Speicher, sondern vielmehr auf das deklarierte Vektor-Objekt 'vector&lt;char&gt;' zeigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752066</guid><dc:creator><![CDATA[Martin2000]]></dc:creator><pubDate>Thu, 30 Jul 2009 07:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit Hilfe von Pointer füllen on Thu, 30 Jul 2009 07:51:59 GMT]]></title><description><![CDATA[<p>Martin2000 schrieb:</p>
<blockquote>
<p>Mit Hilfe eines Vectors wird doch ein Array mit flexibler Speichergröße erzeugt. Warum kann ich mit Hilfe des Pointers b[] nicht direkt auf die Speicherplätze, analog zum char-Array zugreifen?<br />
Liegt es daran, das der Pointer b nicht direkt auf den char-Speicher, sondern vielmehr auf das deklarierte Vektor-Objekt 'vector&lt;char&gt;' zeigt?</p>
</blockquote>
<p>Ja, weil du in deinem Programm einen Pointer auf einen Vector verwendest, der Zugriffsoperator [] sich aber auf den Vector selbst bezieht. Du musst den Pointer erst dereferenzieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752070</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Jul 2009 07:51:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vector mit Hilfe von Pointer füllen on Thu, 30 Jul 2009 07:59:58 GMT]]></title><description><![CDATA[<p>b[i] dereferenziert zuerst den Zeiger. So wie Du beim push_back schon b-&gt;push_back schreiben musstest, müsstest Du hier b-&gt;[i] schreiben. Nur, dass diese Syntax nicht erlaubt ist. Also brauchst Du b[0][i] oder - wie Matze schon schrieb (*b)[i].</p>
<p>Ich denke sinniger ist es, erst garkeinen Zeiger zu verwenden.</p>
<pre><code class="language-cpp">std::vector&lt;char&gt; b;
b.push_back(...);
b[i]=...;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1752073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752073</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 30 Jul 2009 07:59:58 GMT</pubDate></item></channel></rss>