<?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[Wie Adresse von const char in Funktion übergeben?]]></title><description><![CDATA[<p>Ich möchte die Adresse eine const char Variablen als Parameter in eine Funktion übergeben und damit weiter verarbeiten.<br />
Am Beispiel mit int geht das in etwa so:</p>
<pre><code class="language-cpp">int x = 10;

void  Funktion(int *parameter)
{	
  int *adr = parameter;

  //machwas mit adr
}

Funktion(&amp;x)
</code></pre>
<p>Damit habe ich die Adresse und kann damit weitermachen, aber mit const char komme ich nicht klar. Wie macht man das damit? Gibts da Beispiele?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267244/wie-adresse-von-const-char-in-funktion-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 14:34:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267244.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 May 2010 20:51:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Thu, 20 May 2010 20:51:31 GMT]]></title><description><![CDATA[<p>Ich möchte die Adresse eine const char Variablen als Parameter in eine Funktion übergeben und damit weiter verarbeiten.<br />
Am Beispiel mit int geht das in etwa so:</p>
<pre><code class="language-cpp">int x = 10;

void  Funktion(int *parameter)
{	
  int *adr = parameter;

  //machwas mit adr
}

Funktion(&amp;x)
</code></pre>
<p>Damit habe ich die Adresse und kann damit weitermachen, aber mit const char komme ich nicht klar. Wie macht man das damit? Gibts da Beispiele?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900458</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Thu, 20 May 2010 20:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Thu, 20 May 2010 20:53:50 GMT]]></title><description><![CDATA[<p>Wie kommst du denn darauf, dass es mit const char* anders gehen sollte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900461</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 20 May 2010 20:53:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Thu, 20 May 2010 20:56:34 GMT]]></title><description><![CDATA[<p>die Variable ist ja const, damit man sie nicht Bearbeiten kann.</p>
<p>kopier einfach den String aus dem const char in einen nicht-const String.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900462</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Thu, 20 May 2010 20:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Thu, 20 May 2010 21:01:55 GMT]]></title><description><![CDATA[<p>Du kannst genauso auch eine Referenz benutzen:</p>
<pre><code class="language-cpp">int i = 10;
void funktion( int&amp; ref )
{
  // mach mit ref irgendwas
}

char x = 'x';
void funktion( char&amp; ref )
{
  // mach mit ref irgendwas
}

const char y = 'y';
void funktion( const char&amp; ref )
{
   // mach mit ref irgendwas
}
</code></pre>
<p>EDIT:<br />
Jedoch kannst du die konstante Variable auf die sich die Referenz bezieht ja sowieso nicht ändern.</p>
<p>Gruß freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900465</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Thu, 20 May 2010 21:01:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 05:59:59 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<p>Wie kommst du denn darauf, dass es mit const char* anders gehen sollte?</p>
</blockquote>
<p>Das funktioniert zwar, aber es wird ja nur die Adresse vom ersten Zeichen übergeben. Wenn da mehr Zeichen drin stehen, kommt was anderes raus. Das wäre aber gerade wichtig, weil ich in der Funktion die Werte vergleichen möchte, die zu dieser Adresse gehören. Bei anderen Typen gehts ohne Probleme, daher ja die Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900528</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Fri, 21 May 2010 05:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 06:19:49 GMT]]></title><description><![CDATA[<p>Dann machst du was falsch. Es geht genauso wie mit anderen Typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900531</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 21 May 2010 06:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 06:43:52 GMT]]></title><description><![CDATA[<p>dixidix schrieb:</p>
<blockquote>
<p>Athar schrieb:</p>
<blockquote>
<p>Wie kommst du denn darauf, dass es mit const char* anders gehen sollte?</p>
</blockquote>
<p>Das funktioniert zwar, aber es wird ja nur die Adresse vom ersten Zeichen übergeben. Wenn da mehr Zeichen drin stehen, kommt was anderes raus. Das wäre aber gerade wichtig, weil ich in der Funktion die Werte vergleichen möchte, die zu dieser Adresse gehören. Bei anderen Typen gehts ohne Probleme, daher ja die Frage.</p>
</blockquote>
<p>Der const char* zeigt auf das erste Zeichen. Das ist richtig. Da passt auch nicht mehr rein. Wenn es auf eine Zeichenfolge zeigt, dann stehen die folgenden Zeichen in den darauffolgenden Speicheradressen. Wenn Du den Zeiger dann an eine Funktion übergibst, dann zeigt der Zeiger noch immer auf das erste Zeichen der Zeichenfolge. Die weiteren Zeichen stehen noch immer in den darauffolgenden Speicheradressen.<br />
Also ein Beispiel:</p>
<pre><code class="language-cpp">void f(const char* q)
{
  // q zeigt auf das 'H', q+1 zeigt auf das 'a' usw.
}
void g()
{
  const char *p = &quot;Hallo&quot;;
  // p zeigt auf das 'H', p+1 zeigt auf das 'a' usw.
  f(p);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1900536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900536</guid><dc:creator><![CDATA[tntnet2]]></dc:creator><pubDate>Fri, 21 May 2010 06:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 06:55:51 GMT]]></title><description><![CDATA[<p>Also muss das in der Funktion Zeichen für Zeichen aufgedröselt werden? Oder kann man das wie ein Arry behandeln und diese Adresse nehmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900541</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Fri, 21 May 2010 06:55:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 07:35:15 GMT]]></title><description><![CDATA[<p>dixidix schrieb:</p>
<blockquote>
<p>Also muss das in der Funktion Zeichen für Zeichen aufgedröselt werden? Oder kann man das wie ein Arry behandeln und diese Adresse nehmen?</p>
</blockquote>
<p>Wieso denn das? Ich dachte dir gehts nur um das erste Element? Und falls es das ist: Wenn die Anfangsadressen identisch sind, kannst du davon ausgehen, dass danach auch die selben Zeichen drin stehen. Wär ja lustig, wenn an der selben Stelle im Speicher verschiedene Werte gespeichert sein könnten.<br />
Falls das nicht dein Gedanke war, könntest du vllt. noch mal genauer erklären was dein Problem und dein Anliegen sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900556</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Fri, 21 May 2010 07:35:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 07:41:38 GMT]]></title><description><![CDATA[<p>Was willst Du wirklich? Beschreibe Dein Ziel.</p>
<p><a href="http://codepad.org/TyGbWmBg" rel="nofollow">http://codepad.org/TyGbWmBg</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void foo(const char* p)
{
  std::cout &lt;&lt; p &lt;&lt; '\n';
}

int main()
{
  foo(&quot;Hallo!&quot;);
}
</code></pre>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900558</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 21 May 2010 07:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 08:12:33 GMT]]></title><description><![CDATA[<p>Das Problem ist halt, wenn ich die Adresse der ursprünglichen Variable direkt ausgebe, sieht die anders aus als in der Funktion in der die Adresse eigentlich vom Parameter kommen müsste.<br />
Nach diesem Prinzip müsste es eigentlich gehen:</p>
<pre><code class="language-cpp">int x = 10;

void  Funktion(int *parameter)
{   
  int *adr = parameter;

  //machwas mit adr
}

Funktion(&amp;x)
</code></pre>
<p>aber wenn ich es für chars sinngemaß so mache:</p>
<pre><code class="language-cpp">char  x[3] = {'a', 'b', 'c'};;

void  Funktion(char *parameter)
{   
  char *adr = parameter;

  //machwas mit adr
}

Funktion(&amp;x)
</code></pre>
<p>gehts nicht<br />
Muss mal schauen, vermutlich wird irgendwo an der eigentlichen Adresse was geändert, aber da muss ich mal schauen. Hab das ja nicht selbst gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900566</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Fri, 21 May 2010 08:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 08:14:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void fun(const char* var) {
    cout &lt;&lt; var &lt;&lt; endl;
}

int main() {
    char m[4] = {'m', 'e', 'm', '\0'};
    // fun(&amp;m); // das kompiliert hier nicht mal
    fun(m);
}
</code></pre>
<p>Schau dir nochmal das Kapitel über Arrays und Zeiger an.<br />
Hier ist m[4] ein Array, m ist ein Zeiger auf das erste Element.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900584</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Fri, 21 May 2010 08:14:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Adresse von const char in Funktion übergeben? on Fri, 21 May 2010 10:15:35 GMT]]></title><description><![CDATA[<p>dixidix schrieb:</p>
<blockquote>
<p>aber wenn ich es für chars sinngemaß so mache:</p>
<pre><code class="language-cpp">char  x[3] = {'a', 'b', 'c'};

void  Funktion(char *parameter)
{   
  char *adr = parameter;

  //machwas mit adr
}

Funktion(&amp;x)
</code></pre>
<p>gehts nicht</p>
</blockquote>
<p>x ist ja auch kein char sondern ein char-Array. &amp;x ist also vom Typ char(<em>)[3] und nicht char</em>. Was Du willst, ist wahrscheinlich</p>
<pre><code class="language-cpp">Funktion(&amp;x[0]); // Die Adresse des ersten Elements
</code></pre>
<p>Und das kann man wegen des &quot;Array-zu-Zeiger-Zerfalls&quot; auch so abkürzen:</p>
<pre><code class="language-cpp">Funktion(x);
</code></pre>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900649</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 21 May 2010 10:15:35 GMT</pubDate></item></channel></rss>