<?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[Programm schmiert ab mmhh komm nich drauf...]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>brauch unbedingt eure Hilfe. Ich hab nen kleines Prog, dass die Verzeichnis struktur ausgeben soll, mit Rekursion. Aber wenn ich es starte, kommt von Windows nur die Problemberichts Mitteilung. Warum? HAbe ich was mit der Speicherverwaltung verhauen?</p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;
#include &lt;dirent.h&gt;
#include &lt;stdlib.h&gt;

using namespace std;

/* Kleine Funktionen zur Hilfe */
bool ArePoints(char * p)
{
    if(strcmp(p,&quot;.&quot;) == 0)
        return true;
    if(strcmp(p,&quot;..&quot;) == 0)
        return true;

    return false;
}
bool Is_Dir(const char * dirname)
{
    DIR * check=NULL;

    check=opendir(dirname);
    if (check == NULL)
        return false;
    else
        return true;
}

/* Hier jetzt die Hauptfunktion */
void dateibaum(char * pfad)
{
    DIR * dir;
    struct dirent *entry;
    char * newpfad;
    int size;

    dir=opendir(pfad);

    do
    {
        entry=readdir(dir);
        if(entry==NULL)
            break;

		if(!ArePoints(entry-&gt;d_name))
		{
		    size=strlen(pfad)+strlen(entry-&gt;d_name)+1;

		    newpfad= new char [size];
		    sprintf(&quot;%s\\%s&quot;,pfad,entry-&gt;d_name);

			if(Is_Dir(newpfad))
			{
				cout &lt;&lt;&quot;\v&quot;&lt;&lt;newpfad&lt;&lt;&quot;\n&quot;;
				dateibaum(newpfad);

			}else{
				cout&lt;&lt; &quot;\v&quot; &lt;&lt; newpfad &lt;&lt;&quot;\n&quot;;
			}

		}
	}while (true);

	delete [] newpfad;
	closedir(dir);
}

int main()
{

	cout &lt;&lt; &quot;Rekursive Ausgabe: \n\n\n&quot; &lt;&lt; endl;
	dateibaum(&quot;D:\\&quot;);

	return 0;
}
</code></pre>
<p>Warum klappt das nicht?</p>
<p>Es grüßt<br />
ach is doch PillePalle <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/topic/182633/programm-schmiert-ab-mmhh-komm-nich-drauf</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 00:29:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182633.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 May 2007 14:21:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm schmiert ab mmhh komm nich drauf... on Sun, 27 May 2007 14:21:14 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>brauch unbedingt eure Hilfe. Ich hab nen kleines Prog, dass die Verzeichnis struktur ausgeben soll, mit Rekursion. Aber wenn ich es starte, kommt von Windows nur die Problemberichts Mitteilung. Warum? HAbe ich was mit der Speicherverwaltung verhauen?</p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;
#include &lt;dirent.h&gt;
#include &lt;stdlib.h&gt;

using namespace std;

/* Kleine Funktionen zur Hilfe */
bool ArePoints(char * p)
{
    if(strcmp(p,&quot;.&quot;) == 0)
        return true;
    if(strcmp(p,&quot;..&quot;) == 0)
        return true;

    return false;
}
bool Is_Dir(const char * dirname)
{
    DIR * check=NULL;

    check=opendir(dirname);
    if (check == NULL)
        return false;
    else
        return true;
}

/* Hier jetzt die Hauptfunktion */
void dateibaum(char * pfad)
{
    DIR * dir;
    struct dirent *entry;
    char * newpfad;
    int size;

    dir=opendir(pfad);

    do
    {
        entry=readdir(dir);
        if(entry==NULL)
            break;

		if(!ArePoints(entry-&gt;d_name))
		{
		    size=strlen(pfad)+strlen(entry-&gt;d_name)+1;

		    newpfad= new char [size];
		    sprintf(&quot;%s\\%s&quot;,pfad,entry-&gt;d_name);

			if(Is_Dir(newpfad))
			{
				cout &lt;&lt;&quot;\v&quot;&lt;&lt;newpfad&lt;&lt;&quot;\n&quot;;
				dateibaum(newpfad);

			}else{
				cout&lt;&lt; &quot;\v&quot; &lt;&lt; newpfad &lt;&lt;&quot;\n&quot;;
			}

		}
	}while (true);

	delete [] newpfad;
	closedir(dir);
}

int main()
{

	cout &lt;&lt; &quot;Rekursive Ausgabe: \n\n\n&quot; &lt;&lt; endl;
	dateibaum(&quot;D:\\&quot;);

	return 0;
}
</code></pre>
<p>Warum klappt das nicht?</p>
<p>Es grüßt<br />
ach is doch PillePalle <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/1293125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293125</guid><dc:creator><![CDATA[PillePalle]]></dc:creator><pubDate>Sun, 27 May 2007 14:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to Programm schmiert ab mmhh komm nich drauf... on Sun, 27 May 2007 14:24:18 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Warum benutzt du nicht std::string?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293127</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 27 May 2007 14:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to Programm schmiert ab mmhh komm nich drauf... on Sun, 27 May 2007 14:32:05 GMT]]></title><description><![CDATA[<p>Tja gute Frage^^. Werd ich umschreiben, aber selbst wenn, warum klappt das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293130</guid><dc:creator><![CDATA[PillePalle]]></dc:creator><pubDate>Sun, 27 May 2007 14:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Programm schmiert ab mmhh komm nich drauf... on Sun, 27 May 2007 14:58:55 GMT]]></title><description><![CDATA[<p>debugger? schritt für schritt</p>
<p>btw: size muss noch eins größer sein, lange(pfad)+länge(entry)+länge(&quot;\&quot;)+1 nullbyte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293145</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sun, 27 May 2007 14:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Programm schmiert ab mmhh komm nich drauf... on Sun, 27 May 2007 15:11:35 GMT]]></title><description><![CDATA[<p>mhh Debugger gibt mir viele Sachen aus, leider weiß ich nich wie ich damit umgehen soll. Kennt jemdand dazu ein Tut oder sowas?</p>
<p>Das Byte dazu hilft auch nichts <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>
<p>Aber die String-Klasse Variante funzt tadellos.</p>
<p>Gruß ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293148</guid><dc:creator><![CDATA[PillePalle]]></dc:creator><pubDate>Sun, 27 May 2007 15:11:35 GMT</pubDate></item><item><title><![CDATA[Reply to Programm schmiert ab mmhh komm nich drauf... on Sun, 27 May 2007 15:21:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Es gibt hier im Forum einen Artikel zum debuggen. Benutz in c++ besser die std::string-Klase, weil dann einige Speicherverwaltungsfehler nicht passieren können.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293157</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 27 May 2007 15:21:17 GMT</pubDate></item></channel></rss>