<?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[error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage]]></title><description><![CDATA[<p>Ich habe folgende Klasse:</p>
<pre><code class="language-cpp">class Foo
{
public:
char* gWordPtr(){return pcWord;);

void foo();

private:
char* pcWord;
}
</code></pre>
<p>Wenn ich jetzt in einer weiteren Methode pcWord ändern will:</p>
<pre><code class="language-cpp">.....
void Foo::foo()
{
    foo()=new char;
}
</code></pre>
<p>bekomme ich die Fehlermeldung</p>
<pre><code>error C2106: '=': Linker Operand muss ein L-Wert sein
</code></pre>
<p>Ich habe gegoogled, aber das beantwortet nicht meine Frage.<br />
Warum ist es nicht möglich auf einen Rückgabewert ein new anzuwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168114/error-c2106-linker-operand-muss-ein-l-wert-sein-lt-frage</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 06:03:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168114.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Dec 2006 19:24:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:24:45 GMT]]></title><description><![CDATA[<p>Ich habe folgende Klasse:</p>
<pre><code class="language-cpp">class Foo
{
public:
char* gWordPtr(){return pcWord;);

void foo();

private:
char* pcWord;
}
</code></pre>
<p>Wenn ich jetzt in einer weiteren Methode pcWord ändern will:</p>
<pre><code class="language-cpp">.....
void Foo::foo()
{
    foo()=new char;
}
</code></pre>
<p>bekomme ich die Fehlermeldung</p>
<pre><code>error C2106: '=': Linker Operand muss ein L-Wert sein
</code></pre>
<p>Ich habe gegoogled, aber das beantwortet nicht meine Frage.<br />
Warum ist es nicht möglich auf einen Rückgabewert ein new anzuwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194246</guid><dc:creator><![CDATA[grol]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:24:45 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:28:06 GMT]]></title><description><![CDATA[<p>foo() ist void -&gt; also kein Rückgabewert!</p>
<p>Da kannst du keinen Wert zuweisen <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/1194248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194248</guid><dc:creator><![CDATA[Winnie01]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:28:06 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:30:54 GMT]]></title><description><![CDATA[<p>vielleicht so gehts?<br />
[cpp]<br />
void Foo::foo()<br />
{<br />
int anz = 100;<br />
pcWord = new char[anz];<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194249</guid><dc:creator><![CDATA[Winnie01]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:30:54 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:31:55 GMT]]></title><description><![CDATA[<p>und den Rückgabewert einer Funktion bestimmst du mit return, und nicht indem du versuchst der Funktion einen Wert zuzuweisen.</p>
<pre><code class="language-cpp">foo()=new char;
</code></pre>
<p>Wie kommt an überhaupt auf sowas <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/1194250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194250</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:44:14 GMT]]></title><description><![CDATA[<p>....*schäm* ich habe mich vertan es muss natürlich</p>
<pre><code class="language-cpp">.....
void Foo::foo()
{
    this-&gt;gWordPtr()=new char;
}
</code></pre>
<p>heißen.</p>
<p>Wenn man es so hat kommt der Fehler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194257</guid><dc:creator><![CDATA[grol]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:44:14 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:49:18 GMT]]></title><description><![CDATA[<p>das müsste eigentlich wenn, dann so aussehen:</p>
<pre><code class="language-cpp">class Foo
{
public:
char* gWordPtr(){return pcWord;);

void foo();

private:
char* pcWord;
}
</code></pre>
<p>und...</p>
<pre><code class="language-cpp">.....
void Foo::foo()
{
    pcWord()=new char[256]; // nich die Dimension vergessen...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1194259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194259</guid><dc:creator><![CDATA[Winnie01]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:49:18 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:53:30 GMT]]></title><description><![CDATA[<p>Weil du einen temporären Zeiger zurückbekommst und temporären Objekten (und Zeigern) kann man nichts zuweisen. Der Zeiger zeigt zwar auf den gleichen Speicherbereich wie dein anderer Zeiger, wenn du diesem aber mit new etwas zuweisen wollen würdest, würdest du deinen temporären Zeiger verändern und nicht den ursprünglichen Zeiger. Ein zusätzlicher Zeiger sollte dies verdeutlichen:</p>
<pre><code class="language-cpp">void Foo::foo()
{
    char *tmp = this-&gt;gWordPtr()
    tmp = new char;
}
</code></pre>
<p>So geht es, allerdings bleibt der Zeiger pcWord davon unbeeinflusst, nur tmp zeigt auf einen neuen Speicherbereich, den du aber auch gleich wieder nach beenden der Funktion verlierst (und dazu hast du noch ein Speicherleck, weil da kein delete ist).</p>
<p>Hoffe das war verständlich.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194260</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:51:27 GMT]]></title><description><![CDATA[<p>Äh, sorry...<br />
so:</p>
<pre><code class="language-cpp">.....
void Foo::foo()
{
    pcWord=new char[256]; // nich die Dimension vergessen...
}
</code></pre>
<p>ohne die () Klammer...</p>
<p>Dabei bitte die Member-Variable ansprechen - nich die Funktion...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194262</guid><dc:creator><![CDATA[Winnie01]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:51:27 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:51:41 GMT]]></title><description><![CDATA[<p>Winnie01 schrieb:</p>
<blockquote>
<p>und...</p>
<pre><code class="language-cpp">.....
void Foo::foo()
{
    pcWord()=new char[256]; // nich die Dimension vergessen...
}
</code></pre>
</blockquote>
<p>Das geht genausowenig. Ob man ein einfaches new char oder ein new char mit Dimensionsangabe macht ist egal. Und wenn ich nur 1 char speichern will mache ich bestimmt keine Dimensionsangabe dort hin.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194263</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:51:41 GMT</pubDate></item><item><title><![CDATA[Reply to error C2106: &#x27;=&#x27;: Linker Operand muss ein L-Wert sein &amp;lt;---- Frage on Mon, 18 Dec 2006 19:54:22 GMT]]></title><description><![CDATA[<p>ja, o.k...</p>
<p>je nach Problemstellung muß man auch eigentlich wissen, was man erreichen will...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194264</guid><dc:creator><![CDATA[Winnie01]]></dc:creator><pubDate>Mon, 18 Dec 2006 19:54:22 GMT</pubDate></item></channel></rss>