<?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[return Wert *char oder AnsiString]]></title><description><![CDATA[<p>Hallo,</p>
<p>wurde leider bei google, Foren-Suche (offline) und in der BCB6 Hilfe nicht fündig.</p>
<p>Ich rufe eine Methode auf (befindet sich in einer anderen cpp Datei) und möchte einen Wert (char * oder AnsiString) zurückgeben.</p>
<p>Aufruf:</p>
<pre><code class="language-cpp">char *rueckgabedaten = andereMethode(wert, 1, rueckgWert);
</code></pre>
<p>wert ist vom Typ int und rueckgWert ein char*. Das Ergebnis soll ich rueckgabedaten gespeichert werden.</p>
<p>Am Ende der entsprechenden Methode geben ich den gewünschten String mit</p>
<pre><code class="language-cpp">return *rueckgWert;
</code></pre>
<p>zurück.</p>
<p>So wie ich das gesehen habe, sollte es eigentlich korrekt sein... isses aber net, da der Compiler folgende Fehlermeldung ausspuckt:<br />
&quot;Konvertierung von 'int' nach 'char *' nicht möglich&quot;</p>
<p>Weiß einer wo das Problem ist und kann mir helfen? Danke.</p>
<p>gruss Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/106561/return-wert-char-oder-ansistring</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 08:10:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/106561.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Apr 2005 13:11:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 13:12:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wurde leider bei google, Foren-Suche (offline) und in der BCB6 Hilfe nicht fündig.</p>
<p>Ich rufe eine Methode auf (befindet sich in einer anderen cpp Datei) und möchte einen Wert (char * oder AnsiString) zurückgeben.</p>
<p>Aufruf:</p>
<pre><code class="language-cpp">char *rueckgabedaten = andereMethode(wert, 1, rueckgWert);
</code></pre>
<p>wert ist vom Typ int und rueckgWert ein char*. Das Ergebnis soll ich rueckgabedaten gespeichert werden.</p>
<p>Am Ende der entsprechenden Methode geben ich den gewünschten String mit</p>
<pre><code class="language-cpp">return *rueckgWert;
</code></pre>
<p>zurück.</p>
<p>So wie ich das gesehen habe, sollte es eigentlich korrekt sein... isses aber net, da der Compiler folgende Fehlermeldung ausspuckt:<br />
&quot;Konvertierung von 'int' nach 'char *' nicht möglich&quot;</p>
<p>Weiß einer wo das Problem ist und kann mir helfen? Danke.</p>
<p>gruss Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764024</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Mon, 11 Apr 2005 13:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 13:15:38 GMT]]></title><description><![CDATA[<p>Mit dem bischen Code, wird das nichts. Zeig mal die Funktion und wo du sie aufrufst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764028</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Mon, 11 Apr 2005 13:15:38 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 13:16:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">return rueckgWert;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/764030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764030</guid><dc:creator><![CDATA[Clip]]></dc:creator><pubDate>Mon, 11 Apr 2005 13:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 13:16:33 GMT]]></title><description><![CDATA[<p>Gibt es dazu noch mehr Quelltext? Von welchem Typ ist andereMethode?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764031</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Mon, 11 Apr 2005 13:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 14:00:46 GMT]]></title><description><![CDATA[<p>NIE einen Zeiger auf etwas zurückgeben dessen Ursprung nicht ausserhalb der funktion liegt!</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764072</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Mon, 11 Apr 2005 14:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 14:18:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>sry, hier nun mit mehr Code.</p>
<p>die aufrufende:</p>
<pre><code class="language-cpp">extern char andereMethode(int port, int ausz_befehl, char *rueckgWert) ; // steht oben in der Main-Datei
.....

void __fastcall TsgPort::btnScanAllClick(TObject *Sender)
{
   int port = 1;
   int ausz_befehl = 1;
   char *rueckgWert;
   char *r_daten = andereMethode(port, ausz_befehl, rueckgWert);
}
</code></pre>
<p>Compiler-Fehler: &quot;Konvertierung von int nach char* nicht möglich&quot;</p>
<p>und hier die aufgerufene, von wo der Wert zurückgegeben werden soll (mal alles unnötige ausgerschmissen und zum testen einfach versucht einen String zurückzugeben):</p>
<pre><code class="language-cpp">char andereMethode(int port, int ausz_befehl, char *rueckgWert)                  
{
  rueckgWert = &quot;Rueckgabewert&quot;;

  return rueckgWert;
}
</code></pre>
<p>Compiler-Fehler: &quot;Konvertierung von char* nach int nicht möglich&quot;</p>
<p>Aber ich konvertiere doch eigentlich nix... so schaut es jedenfalls für mich aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764090</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Mon, 11 Apr 2005 14:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 14:26:09 GMT]]></title><description><![CDATA[<p>Schau nochmal wie die externe Funktion deklariert ist....</p>
<p>Und ausserdem:</p>
<p>junix schrieb:</p>
<blockquote>
<p>NIE einen Zeiger auf etwas zurückgeben dessen Ursprung nicht ausserhalb der funktion liegt!</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/764102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764102</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Mon, 11 Apr 2005 14:26:09 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 14:45:39 GMT]]></title><description><![CDATA[<p>junix schrieb:</p>
<blockquote>
<p>Schau nochmal wie die externe Funktion deklariert ist....</p>
</blockquote>
<p>uff, also irgendwie stehe ich da total auf dem Schlauch. Sehe da irgendwie keinen Fehler.</p>
<p>junix schrieb:</p>
<blockquote>
<p>Und ausserdem:</p>
<p>junix schrieb:</p>
<blockquote>
<p>NIE einen Zeiger auf etwas zurückgeben dessen Ursprung nicht ausserhalb der funktion liegt!</p>
</blockquote>
</blockquote>
<p>Stimmt, die Rückgabe muss ja eigentlich ohne * sein.<br />
Ich habe aber irgendwie keine andere Möglichkeit gefunden, wie man einen char String (kann auch gerne ansistring sein) zurückgeben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764119</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Mon, 11 Apr 2005 14:45:39 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 15:28:28 GMT]]></title><description><![CDATA[<p>Gib der Funktion den ZEiger wo sie reinschreiben kann doch einfach mit?</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764157</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Mon, 11 Apr 2005 15:28:28 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 16:49:40 GMT]]></title><description><![CDATA[<p>junix schrieb:</p>
<blockquote>
<p>Gib der Funktion den ZEiger wo sie reinschreiben kann doch einfach mit?</p>
<p>-junix</p>
</blockquote>
<p>das hört sich so schön leicht an, für einen &quot;Anfänger&quot; ist das aber ziemlich harte Arbeit. <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>
<p>Kann die Funktionsdeklaration nicht so bleiben? Muss ich stattdessen nicht nur die Adresse des Char-Strings übergeben, also der Aufruf:</p>
<pre><code class="language-cpp">andereMethode(port, ausz_befehl, &amp;rueckgWert);
</code></pre>
<p>Durch das &amp; wird ja die Adresse übergeben.</p>
<p>Muss ich dann überhaupt was an return anhängen? So wie ich das deute, muss ich ja nix übergeben, da ich bereits auf der Adresse des ursprünglichen char Strings gearbeitet habe und der Wert dort erhalten bleibt.</p>
<p>sollte dann irgendwie so aussehen?<br />
Funktionieren tut das leider auch nicht, bin aber irgendwie mit meinem Latein am Ende... könnte jetzt mal einen großen Wink mit dem Zaunpfahl vertragen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">extern char andereMethode(int port, int ausz_befehl, char *rueckgWert) ; // steht oben in der Main-Datei
.....

void __fastcall TsgPort::btnScanAllClick(TObject *Sender)
{
   int port = 1;
   int ausz_befehl = 1;
   char *rueckgWert;
   andereMethode(port, ausz_befehl, &amp;rueckgWert);
   ListBox-&gt;AddItem(rueckgWert, ListBox);
}
</code></pre>
<pre><code class="language-cpp">char andereMethode(int port, int ausz_befehl, char *rueckgWert)                  
{
  rueckgWert = &quot;Rueckgabewert&quot;;

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/764204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764204</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Mon, 11 Apr 2005 16:49:40 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Mon, 11 Apr 2005 23:30:21 GMT]]></title><description><![CDATA[<p>Probiers mal statt mit &quot;=&quot; mit &quot;strncpy&quot; (o;</p>
<p>Ansonsten vielleicht noch &quot;rueckgWert&quot; hat ja gar keinen Speicher hinterlegt?<br />
Und wenn du schon eine Adresse hast (char <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="😉"
    /> dann brauchste den &amp; operator nicht mehr...</p>
<p>Wenn du Zeiger deklarierst, gewöhn dir an, sie mit NULL zu initialisieren oder direkt mit new [] und neuem speicher. Aber dann das delete [] nicht vergessen...</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764463</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Mon, 11 Apr 2005 23:30:21 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 08:00:46 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also wenn Du als Rückgabewert einen char-pointer haben willst muss Du es auch so deklarieren <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="😉"
    /> <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="😉"
    /><br />
nicht<br />
char methode(...)</p>
<p>sondern<br />
char * methode(...)</p>
<p>Wobei Pointer auf eine in der Funktion deklarierten Variable zurückzugeben ist nicht sauber. Beachte, dass beim Verlassen der Funktion die Variable &quot;eigentlich&quot; nicht mehr existiert. Kann zu den lustigsten effekten führen <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>
<p>nimm doch als Rückgabewert einfach einen AnsiString</p>
<p>AnsiString methode(...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764542</guid><dc:creator><![CDATA[rautaxe]]></dc:creator><pubDate>Tue, 12 Apr 2005 08:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 08:45:53 GMT]]></title><description><![CDATA[<p>junix schrieb:</p>
<blockquote>
<p>Probiers mal statt mit &quot;=&quot; mit &quot;strncpy&quot; (o;</p>
<p>Ansonsten vielleicht noch &quot;rueckgWert&quot; hat ja gar keinen Speicher hinterlegt?<br />
Und wenn du schon eine Adresse hast (char <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="😉"
    /> dann brauchste den &amp; operator nicht mehr...</p>
<p>Wenn du Zeiger deklarierst, gewöhn dir an, sie mit NULL zu initialisieren oder direkt mit new [] und neuem speicher. Aber dann das delete [] nicht vergessen...</p>
<p>-junix</p>
</blockquote>
<p>Hi,</p>
<p>habe es nun mit char [] und strcpy hinbekommen.</p>
<p>Danke. <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/764582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764582</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Tue, 12 Apr 2005 08:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 12:10:36 GMT]]></title><description><![CDATA[<p>junix schrieb:</p>
<blockquote>
<p>...<br />
Wenn du Zeiger deklarierst, gewöhn dir an, sie mit NULL zu initialisieren oder direkt mit new [] und neuem speicher. Aber dann das delete [] nicht vergessen...</p>
</blockquote>
<p>hmmm... es gibt noch ein Problem mit delete, denn der Rückgabewert wird nicht wirklich gelöscht. Wenn die Abfragen kein Ergebnis haben, wird auch nix ausgegeben. Sobald das erste Ergebnis einen Rückgabewert enthält, haben auch die folgenden Ausgaben genau den gleichen Rückgabewert, obwohl das einfach nicht sein kann.</p>
<p>hier mal der Code (hoffentlich reicht der):</p>
<pre><code class="language-cpp">void __fastcall TsgPort::btnScanAllClick(TObject *Sender)
{
   int port = 1;
   int ausz_befehl = 1;
   char rueckgWert[10];  // vor Bearbeitung neu anlegen
   andereMethode(port, ausz_befehl, rueckgWert);
   ListBox-&gt;AddItem(rueckgWert, ListBox);
   delete []rueckgWert;  // nach Bearbeitung löschen
}
</code></pre>
<pre><code class="language-cpp">int andereMethode(int port, int ausz_befehl, char *rueckgWert)                  
{
  // gobale Variable &quot;AnsiString rueckgWert_a = NULL&quot;;

  // in der Funktion wird der AnsiString nach und nach gefüllt, z.B.::
  rueckgWer_a += sh_ver_log.Substring(pos, 4);
  ...

 // an Ende wird dann alles ins char kopiert:
 strcpy(rueckgWert, rueckgWert_a.c_str());
 return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/764755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764755</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Tue, 12 Apr 2005 12:10:36 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 13:52:46 GMT]]></title><description><![CDATA[<p>Führe NIEMALS delete auf Stackobjekte aus! Das darfst du nicht!<br />
Ausserdem frage ich mich was du vom Delete erwartest? Und dann würde ich mir genau überlegen, was du da genau mit AddItem machst...</p>
<p>Ausserdem sagte ich du sollst str<strong>n</strong>cpy verwenden. Das andere ist zu unsicher und kann zu Pufferüberläufen führen.</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764857</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 12 Apr 2005 13:52:46 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 16:49:02 GMT]]></title><description><![CDATA[<p>junix schrieb:</p>
<blockquote>
<p>Führe NIEMALS delete auf Stackobjekte aus! Das darfst du nicht!<br />
Ausserdem frage ich mich was du vom Delete erwartest? Und dann würde ich mir genau überlegen, was du da genau mit AddItem machst...</p>
<p>Ausserdem sagte ich du sollst str<strong>n</strong>cpy verwenden. Das andere ist zu unsicher und kann zu Pufferüberläufen führen.</p>
<p>-junix</p>
</blockquote>
<p>Stimmt, Du hast strncpy geschrieben. Hatte mich aber zuerst für strcpy entschieden, da es für mich die einfachere Möglichkeit war und ich keinen wirklich großen Unterschied zw. den beiden gesehen habe.</p>
<p>Das mit dem Delete hatte ich falsch verstanden. Ich dachte, dass ich dadurch die Daten an der Speicheradresse löschen. Habe mich auch irgendwie gewundert, da die am Ende nach der } ja automatisch gelöscht wird.... wusste es halt nicht besser.</p>
<p>Mit der Listbox wollte ich natürlich das Ergebnis in einem Fenster ausgeben. <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="😉"
    /><br />
hmm... hat ja sicherlich einen Grund, warum Du so auf die hinweisst.<br />
Umgehen könnte ich das, indem ich den Rückgabewert via copy in eine struct kopiere (wo die eigentlich eh hin soll) und dann erst den Wert aus der struct ausgebe.<br />
Dadurch das sich der Port ja immer ändert, wir dann auch immer das tatsächlich aktuell zurückgegebene ausgegeben.</p>
<p>hier mal der Code (hoffentlich reicht der):</p>
<pre><code class="language-cpp">void __fastcall TsgPort::btnScanAllClick(TObject *Sender)
{
   int port = 1;
   int ausz_befehl = 1;
   char rueckgWert[15];
   andereMethode(port, 1, rueckgWert);
   AnsiString r_Wert = rueckgWert;
   int r_Wert_laenge = r_Wert.Length();
   int pos = r_Wert.Pos(&quot;x&quot;);
   meineStruct[port].R_ID = r_Wert.SubString(0, pos-2);
   meineStruct[port].Reg = r_Wert.SubString(pos-1, r_Wert_laenge-3 );
   lbVerlauf-&gt;AddItem(att[port].Reg, lbVerlauf);
   lbVerlauf-&gt;AddItem(att[port].R_ID, lbVerlauf);

}
</code></pre>
<pre><code class="language-cpp">int andereMethode(int port, int ausz_befehl, char *rueckgWert)                  
{
  // gobale Variable &quot;AnsiString rueckgWert_a = NULL&quot;;

  // in der Funktion wird der AnsiString nach und nach gefüllt, z.B.::
  rueckgWer_a += sh_ver_log.Substring(pos, 4);
  ...

 // an Ende wird dann alles ins char kopiert:
 strncpy(rueckgWert, rueckgWert_a.c_str(), 12);
 return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/764985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764985</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Tue, 12 Apr 2005 16:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 20:35:14 GMT]]></title><description><![CDATA[<p>Michael_S schrieb:</p>
<blockquote>
<p>Stimmt, Du hast strncpy geschrieben. Hatte mich aber zuerst für strcpy entschieden, da es für mich die einfachere Möglichkeit war und ich keinen wirklich großen Unterschied zw. den beiden gesehen habe.</p>
</blockquote>
<p>Der Wichtige aber nicht so grosse UNterschied ist die Tatsache, dass strncpy die Möglichkeit bietet die Grösse des Zielpuffers anzugeben und damit das Schreiben über die Speichergrenzen verhindert.</p>
<p>Michael_S schrieb:</p>
<blockquote>
<p>[...]Habe mich auch irgendwie gewundert, da die am Ende nach der } ja automatisch gelöscht wird.... [...]</p>
</blockquote>
<p>Hab leider grad keinen BCB zur HAnd, was ist die Deklaration von AddITem?</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765142</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 12 Apr 2005 20:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Tue, 12 Apr 2005 20:58:14 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>junix schrieb:</p>
<blockquote>
<p>Hab leider grad keinen BCB zur HAnd, was ist die Deklaration von AddITem?</p>
<p>-junix</p>
</blockquote>
<p>lautet wie folgt:</p>
<pre><code class="language-cpp">void __fastcall AddItem(AnsiString Item, TObject AObject);
</code></pre>
<p>gruß,<br />
MMFS</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765161</guid><dc:creator><![CDATA[Michael_S]]></dc:creator><pubDate>Tue, 12 Apr 2005 20:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to return Wert *char oder AnsiString on Wed, 13 Apr 2005 03:59:13 GMT]]></title><description><![CDATA[<p>Michael_S,</p>
<p>ich würde Dir empfehlen sich mit den Grundlagen von C++ etwas zu befassen.<br />
Ancheinend erkennst Du den Unterschied zwischen stack und heap nicht, genauso wenig wie char und char* .</p>
<p>Außerdem würde ich an Deiner Stelle etwas am eigenen Design arbeiten,<br />
was z.Bsp Funktionsdeklaration angeht, Präfixe etc.</p>
<p>Es ist nicht persönlich gemeint lediglich als freundlicher Tipp <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/765238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765238</guid><dc:creator><![CDATA[epidemic]]></dc:creator><pubDate>Wed, 13 Apr 2005 03:59:13 GMT</pubDate></item></channel></rss>