<?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[Anfaengerfrage]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine Frage bzgl. diesen zwei folgenden Methoden:</p>
<p><strong>Headerfile (file.h)</strong></p>
<pre><code>...
char* m_File;
...
</code></pre>
<p><strong>CPP-File (file.cpp)</strong></p>
<pre><code>void method1
{
   char fileName[100]

   ...
   //Ermittlung des Filenamen
   ...

   m_File = fileName;
}

void method2
{  
   ...
   logFile = fopen(m_File,&quot;a&quot;);
   ...

}
</code></pre>
<p>Nun wird in method1 der Filename ermittelt und der Membervariablen vom Typ char* uebergeben. In method2 ist in dieser Membervariable nicht der gewuenschte Filename, der in method1 ermittelt wurde, sondern irgend etwas. Wo ist der Denkfehler passiert? Was muss ich anders machen?</p>
<p>Danke euch schon im Voraus.</p>
<p>Gruss Fabian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204030/anfaengerfrage</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 07:57:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204030.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Jan 2008 14:09:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 14:09:34 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine Frage bzgl. diesen zwei folgenden Methoden:</p>
<p><strong>Headerfile (file.h)</strong></p>
<pre><code>...
char* m_File;
...
</code></pre>
<p><strong>CPP-File (file.cpp)</strong></p>
<pre><code>void method1
{
   char fileName[100]

   ...
   //Ermittlung des Filenamen
   ...

   m_File = fileName;
}

void method2
{  
   ...
   logFile = fopen(m_File,&quot;a&quot;);
   ...

}
</code></pre>
<p>Nun wird in method1 der Filename ermittelt und der Membervariablen vom Typ char* uebergeben. In method2 ist in dieser Membervariable nicht der gewuenschte Filename, der in method1 ermittelt wurde, sondern irgend etwas. Wo ist der Denkfehler passiert? Was muss ich anders machen?</p>
<p>Danke euch schon im Voraus.</p>
<p>Gruss Fabian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445672</guid><dc:creator><![CDATA[FabianR]]></dc:creator><pubDate>Tue, 29 Jan 2008 14:09:34 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 14:17:32 GMT]]></title><description><![CDATA[<p>fileName ist eine temporäre Variable die am Ende der Funktion ihre Gültigkeit verliert. Hingegen ist m_File ein Pointer den du auf eben jene temporäre Variable umbiegst. Nach Verlassen der Methode zeigt die also auf Müll. Nimm statt char* std::string als m_File, dann brauchst dich nicht mit char-Pointern herumschlagen.</p>
<p>Sollte jeder zwar mal gemacht haben (mE), aber wer sich die Mühe ersparen will... <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/1445682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445682</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 29 Jan 2008 14:17:32 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 14:30:23 GMT]]></title><description><![CDATA[<p>FabianR schrieb:</p>
<blockquote>
<p>ich habe eine Frage bzgl. diesen zwei folgenden Methoden:</p>
</blockquote>
<p>Bitte, auch wenn man Code sinnvoll kürzen sollte, schreib zumindestens soviel das man sieht was dein Problem ist. Du schreibst zwar Methoden, was für mein Verständnis Funktionen von Klassen sind, aber zum einen sieht man weder den Klassenbezug noch einen vollständigen Funktionskopf, sondern nur ungültigen Code.</p>
<p>FabianR schrieb:</p>
<blockquote>
<p><strong>CPP-File (file.cpp)</strong></p>
<pre><code>void method1
{
</code></pre>
</blockquote>
<p>Das ist weder eine Funktion- noch ein Methode. Gib mindestens soviel Code mit an wie für das Problem nötig ist. Und ist deine Variable im Header nun ein Member einer Klasse, eine globale Variable oder was? (zumindest den Klassenrumpf sollte man schreiben).</p>
<p>Sobald du einen Minimalcode (das ist deiner nicht, der ist noch nicht mal Minimal sondern garnichts) präsentierst, kann man dir auch mehr helfen <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>Grundsätzlich aber eins: Einem Zeiger kannst du nicht einfach einen lokalen Speicherbereich zuweisen (Stichwort Allozierung[new]/Dealozierung[delete]). Und wie schon erwähnt: Verwende wenn möglich std::string statt char-Zeigern und char-Arrays...</p>
<p>cu André<br />
P.S: Zudem benutze bitte statt die Code-Tags die C/C++-Tags...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445689</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 29 Jan 2008 14:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:03:41 GMT]]></title><description><![CDATA[<p>Ok danke, ich werde das naechste Mal darauf achten :). Ich moechte diese String-Variante aber umgehen, soll heissen ich moechte die Loesung in char*-Form, oder ist das in diesem Fall viel schwieriger?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445707</guid><dc:creator><![CDATA[FabianR]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:12:37 GMT]]></title><description><![CDATA[<p>warum möchtest Du nicht std::string benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445708</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:15:42 GMT]]></title><description><![CDATA[<p>unwesentlich<br />
du musst nur darauf achten was du den zeiger auf allokierten speicher zeigen laesst<br />
derzeit zeigt der auf eine temporaere variable die verschwindet am ende der funktion<br />
einfach</p>
<pre><code class="language-cpp">m_File = new char[count]
// zuweisung

oder spaeter irgendwo

delete [] m_File;
m_File = NULL;
</code></pre>
<p>also entweder gleich allokieren und damit arbeiten, oder mit fileName arbeiten und dann allokieren und zuweisen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445711</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:17:38 GMT]]></title><description><![CDATA[<p>Wenn du das unbedingt willst, hast du zwei Möglichkeiten:</p>
<p>a) Du machst aus m_File einen char-Array, musst dafür aber halt die maximale Größe zu Kompilierzeit wissen.</p>
<p>b) Du forderst den nötigen Speicher an zur Laufzeit. Und natürlich später wieder mit delete[] freigeben.</p>
<pre><code class="language-cpp">void method1(...)
{
   char fileName[100];

   ...
   //Ermittlung des Filenamen
   ...

   m_File = new char[strlen(fileName)+1];
   strncpy(m_File, fileName, strlen(fileName)+1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1445713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445713</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:17:38 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:23:46 GMT]]></title><description><![CDATA[<p>FabianR schrieb:</p>
<blockquote>
<p>Ich moechte diese String-Variante aber umgehen, soll heissen ich moechte die Loesung in char*-Form, oder ist das in diesem Fall viel schwieriger?</p>
</blockquote>
<p>Vorgabe von einen Lehrer, oder einfach Masochistisch veranlagt? Sorry, aber warum muss man sich eigentlich immer wieder mit Zeigerarithmetik rumschlagen, wo es wirklich nicht sein muss (std::string gehört zum C++ Standard).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445717</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:23:46 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:39:19 GMT]]></title><description><![CDATA[<p>Richtig getippt, Vorgabe des Lehrers, sorry <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>
<p>Danke fuer eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445724</guid><dc:creator><![CDATA[FabianR]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 15:41:10 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Vorgabe von einen Lehrer, oder einfach Masochistisch veranlagt? Sorry, aber warum muss man sich eigentlich immer wieder mit Zeigerarithmetik rumschlagen, wo es wirklich nicht sein muss (std::string gehört zum C++ Standard).</p>
</blockquote>
<p>Weil Lehrer, Profs und Buchautoren doof sind? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Ich bin der letzte der sagen würde, man muß sich nicht mit Array und Pointer beschäftigen, aber es gibt anscheinend immer noch Menschen, die meinen einen Anfänger damit zuschmeissen zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445726</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 29 Jan 2008 15:41:10 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 16:02:43 GMT]]></title><description><![CDATA[<p>Wenn du siehst wie überlaufen Informatikstudiengänge heutzutage sind, da ist das eine gute und beliebte Möglichkeit um auszusieben. <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/1445749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445749</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 29 Jan 2008 16:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 16:09:27 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Wenn du siehst wie überlaufen Informatikstudiengänge heutzutage sind, da ist das eine gute und beliebte Möglichkeit um auszusieben. <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>
</blockquote>
<p>Wo sind die überlaufen? Sorry, aber ich höre immer etwas von einem Mangel...</p>
<p>cu André<br />
P.S: Und das entschuldigt nicht das die Dozenten auf einen Stand vor 10+ Jahren arbeiten. Mit Zeigern kann man die Schüler/Studenten noch immer anderweitig zur Verzweiflung bringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445758</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 29 Jan 2008 16:09:27 GMT</pubDate></item><item><title><![CDATA[Reply to Anfaengerfrage on Tue, 29 Jan 2008 16:11:19 GMT]]></title><description><![CDATA[<p>Zum Beispiel in Bremen. Wo sich jedes Jahr mehr als 1.000 zuviel bewerben und auch immer genommen werden. An Informatikern die am Ende mit Diplom herauskommen und tatsächlich auch was können, an denen mangelt es wirklich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445760</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 29 Jan 2008 16:11:19 GMT</pubDate></item></channel></rss>