<?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[string array als reference übergeben?]]></title><description><![CDATA[<p>Hallo ich möchte einen String-Array mit 2 Dimensionen als reference übergeben.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;

using namespace std;

void SetName(string&amp; name[5][2])
{
	name[0][0] = &quot;Nachname 1&quot;;
	name[0][1] = &quot;Vorname 1&quot;;

	name[1][0] = &quot;Nachname 2&quot;;
	name[1][1] = &quot;Vorname 2&quot;;

	name[2][0] = &quot;Nachname 3&quot;;
	name[2][1] = &quot;Vorname 3&quot;;

	name[3][0] = &quot;Nachname 4&quot;;
	name[3][1] = &quot;Vorname 4&quot;;

	name[4][0] = &quot;Nachname 5&quot;;
	name[4][1] = &quot;Vorname 5&quot;;
}

int main()
{
	string name[5][2];

	SetName(name);

	for(int x = 0; x &lt; 5; x++)
	{
		cout &lt;&lt; name[x][0] &lt;&lt; endl;
		cout &lt;&lt; name[x][1] &lt;&lt; endl;
	}
}
</code></pre>
<p>Wenn ich das compilieren möchte bekomme ich einen haufen Fehler</p>
<pre><code>Fehler	1	error C2234: 'name': Arrays aus Verweisen sind unzulässig	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	6	testName
Fehler	2	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	8	testName
Fehler	3	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	9	testName
Fehler	4	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	11	testName
Fehler	5	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	12	testName
Fehler	6	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	14	testName
Fehler	7	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	15	testName
Fehler	8	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	17	testName
Fehler	9	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	18	testName
Fehler	10	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	20	testName
Fehler	11	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	21	testName
Fehler	12	error C2664: 'SetName': Konvertierung des Parameters 1 von 'std::string [5][2]' in 'std::string *[][2]' nicht möglich	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	28	testName
Fehler	13	error C2679: Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	32	testName
Fehler	14	error C2679: Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	33	testName
</code></pre>
<p>warum const char?? da ist doch kein char...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206354/string-array-als-reference-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 08:48:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206354.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Feb 2008 23:04:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string array als reference übergeben? on Sat, 23 Feb 2008 23:06:00 GMT]]></title><description><![CDATA[<p>Hallo ich möchte einen String-Array mit 2 Dimensionen als reference übergeben.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;

using namespace std;

void SetName(string&amp; name[5][2])
{
	name[0][0] = &quot;Nachname 1&quot;;
	name[0][1] = &quot;Vorname 1&quot;;

	name[1][0] = &quot;Nachname 2&quot;;
	name[1][1] = &quot;Vorname 2&quot;;

	name[2][0] = &quot;Nachname 3&quot;;
	name[2][1] = &quot;Vorname 3&quot;;

	name[3][0] = &quot;Nachname 4&quot;;
	name[3][1] = &quot;Vorname 4&quot;;

	name[4][0] = &quot;Nachname 5&quot;;
	name[4][1] = &quot;Vorname 5&quot;;
}

int main()
{
	string name[5][2];

	SetName(name);

	for(int x = 0; x &lt; 5; x++)
	{
		cout &lt;&lt; name[x][0] &lt;&lt; endl;
		cout &lt;&lt; name[x][1] &lt;&lt; endl;
	}
}
</code></pre>
<p>Wenn ich das compilieren möchte bekomme ich einen haufen Fehler</p>
<pre><code>Fehler	1	error C2234: 'name': Arrays aus Verweisen sind unzulässig	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	6	testName
Fehler	2	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	8	testName
Fehler	3	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	9	testName
Fehler	4	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	11	testName
Fehler	5	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	12	testName
Fehler	6	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	14	testName
Fehler	7	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	15	testName
Fehler	8	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	17	testName
Fehler	9	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	18	testName
Fehler	10	error C2440: '=': 'const char [11]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	20	testName
Fehler	11	error C2440: '=': 'const char [10]' kann nicht in 'std::string *' konvertiert werden	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	21	testName
Fehler	12	error C2664: 'SetName': Konvertierung des Parameters 1 von 'std::string [5][2]' in 'std::string *[][2]' nicht möglich	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	28	testName
Fehler	13	error C2679: Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	32	testName
Fehler	14	error C2679: Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)	d:\dokumente\visual studio 2008\projects\c++\test\testname\testname\testname.cpp	33	testName
</code></pre>
<p>warum const char?? da ist doch kein char...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461763</guid><dc:creator><![CDATA[lord_fritte]]></dc:creator><pubDate>Sat, 23 Feb 2008 23:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to string array als reference übergeben? on Sat, 23 Feb 2008 23:46:10 GMT]]></title><description><![CDATA[<p>Lass einfach mal das &amp; hinter string weg, d.h. du übergibst nur das Array direkt, also so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt; //string.h gibt es nicht

using namespace std;

void SetName(string name[5][2])
{
    name[0][0] = &quot;Nachname 1&quot;;
    name[0][1] = &quot;Vorname 1&quot;;

    name[1][0] = &quot;Nachname 2&quot;;
    name[1][1] = &quot;Vorname 2&quot;;

    name[2][0] = &quot;Nachname 3&quot;;
    name[2][1] = &quot;Vorname 3&quot;;

    name[3][0] = &quot;Nachname 4&quot;;
    name[3][1] = &quot;Vorname 4&quot;;

    name[4][0] = &quot;Nachname 5&quot;;
    name[4][1] = &quot;Vorname 5&quot;;
}

int main()
{
    string name[5][2];

    SetName(name);

    for(int x = 0; x &lt; 5; x++)
    {
        cout &lt;&lt; name[x][0] &lt;&lt; endl;
        cout &lt;&lt; name[x][1] &lt;&lt; endl;
    }
}
</code></pre>
<p>Was dein Code nämlich machen würde, wenn er funktionieren würde, wäre, dass du ein Array von Referenzen auf strings übergibst. Und wie der Compiler dir schon richtig sagt, gibt es keine Arrays von Referenzen.</p>
<p>Du musst allerdings auch gar keine Referenz verwenden, da Arrays bei Übergabe an Funktionen immer implizit in Zeiger umgewandelt werden (d.h. einen Zeiger auf das erste Element, das heißt, du übergibst quasi einen Zeiger auf ein 2-elementiges Array von String), das nennt sich Decay. Du könntest also statt</p>
<pre><code class="language-cpp">void SetName(string name[5][2])
</code></pre>
<p>auch</p>
<pre><code class="language-cpp">void SetName(string (*name)[2])
</code></pre>
<p>schreiben.</p>
<p>Hoffe, das hilft etwas</p>
<p>Felix</p>
<p>EDIT: Was mit const char[] gemeint ist: String-Literale, das heißt Ausdrücke der Form &quot;text&quot; sind intern vom Typ const char[], bzw. (wie oben schon angedeutet, Arrays und Zeiger sind in vielen Fällen &quot;ähnlich&quot;) const char*. Und der Compiler beschwert sich, dass er die const char[]-Literale nicht in Zeiger auf strings umwandeln kann, weil er anscheinend deinen an sich falschen Typ von string &amp;name[5][2] falsch interpretiert und dann an Zeiger auf strings denkt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461773</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Sat, 23 Feb 2008 23:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to string array als reference übergeben? on Sat, 23 Feb 2008 23:45:25 GMT]]></title><description><![CDATA[<p>oder alternativ eine Referenz auf ein Array benutzen:</p>
<pre><code class="language-cpp">void SetName(string (&amp;name)[5][2]);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1461774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461774</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 23 Feb 2008 23:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to string array als reference übergeben? on Sat, 23 Feb 2008 23:47:49 GMT]]></title><description><![CDATA[<p>Stimmt, campers Lösung ist wahrscheinlich näher an dem, was du dir vorgestellt hast, wenn du eine Referenz benutzen möchtest... Schade, dass mir das nicht eingefallen ist :D, ist wohl doch schon etwas zu spät geworden.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461775</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Sat, 23 Feb 2008 23:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to string array als reference übergeben? on Sun, 24 Feb 2008 10:07:20 GMT]]></title><description><![CDATA[<p>Danke es geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461823</guid><dc:creator><![CDATA[lord_fritte]]></dc:creator><pubDate>Sun, 24 Feb 2008 10:07:20 GMT</pubDate></item></channel></rss>