<?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[Debug Assertion Failed (L&amp;quot;Buffer to small&amp;quot; &amp;amp;&amp;amp; 0)]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>in der Schule sind wir gerade dabei C++ zu lernen. Ich auch recht gut zurecht damit.<br />
Wir sollten ein Programm schreiben um eine Liste mit Namen und Noten zu schreiben. Die Ein- und Ausgabe funktioniert auch. Jetzt sollten wir das Programm erweitern, damit die Ausgabe in alphabetischer Reihenfolge geschieht. Aber ich bekomme immer eine Fehlermeldung mit der ich nichts anfangen kann:<br />
Debug Assertion Failed<br />
(L&quot;Buffer to small&quot; &amp;&amp; 0)</p>
<p>Hier mal mein Code:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;math.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;
#include &lt;cstring&gt;
#include &lt;string&gt;

typedef struct 
{
	char name[21];
	int d[1];
	int hps[1];
	int dvm[1];
}datenbank;

using namespace std;

int main (void)
	{
		int i = 0;
		char ende = 'n';
		datenbank daten [12];
		while ((i != 10) &amp;&amp; (ende != 'J'))
		{
			printf (&quot;Bitte geben Sie den Namen ein:	&quot;);
			cin &gt;&gt; daten[i].name;
			//scanf_s (&quot;%s&quot;, daten[i].name);
			fflush (stdin);
			printf_s (&quot;Bitte geben Sie die Note in Deutsch ein:	&quot;);
			scanf_s (&quot;%i&quot;, daten[i].d);
			fflush (stdin);
			printf (&quot;Bitte geben Sie die Note in HPS ein:	&quot;);
			scanf_s (&quot;%i&quot;, daten[i].hps);
			fflush (stdin);
			printf (&quot;Bitte geben Sie die Note in DVM ein:	&quot;);
			scanf_s (&quot;%i&quot;, daten[i].dvm);
			fflush (stdin);
			printf (&quot;Beenden j/n?	:	&quot;);
			ende = toupper (getchar ());
			fflush (stdin);
			i++;
		}
		for (int j=0; j&lt;11; j++)
		{
			for (int k=0; k&lt;2; k++)
			{
				if (daten[j].name[k]&gt;daten[j+1].name[k])
				{
					char temp[22];
					strcpy_s (temp, daten[j].name);
					strcpy_s (daten[j].name, daten[j+1].name);
					strcpy_s (daten[j+1].name, temp);
					//int temp2=0;
					//temp2=daten[j].d[0];
					//daten[j].d[0]=daten[j+1].d[0];
					//daten[j+1].d[0]=temp2;
				}
				j++;
			}
		}
	    for (int m=0; m&lt;i; m++)
		{
			printf (&quot;%s %i %i %i\n&quot;, daten[m].name, daten[m].d[0], daten[m].hps[0], daten[m].dvm[0]);
		}
	_getch();

}
</code></pre>
<p>In erster Linie geht es mir darum wie ich die Namen sortieren kann. Ich weiß auch das die Noten nicht mit getauscht werden, dass schaff ich dann schon.<br />
Und warum kann ich in Zeile 29 nicht mit scanf_s arbeiten, sondern muss cin benutzen?<br />
Ach ja ich benutze MS Visual Studio 2008.</p>
<p>mfg marv87</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262529/debug-assertion-failed-l-quot-buffer-to-small-quot-amp-amp-0</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 16:13:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262529.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Mar 2010 19:58:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Debug Assertion Failed (L&amp;quot;Buffer to small&amp;quot; &amp;amp;&amp;amp; 0) on Sun, 07 Mar 2010 19:58:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>in der Schule sind wir gerade dabei C++ zu lernen. Ich auch recht gut zurecht damit.<br />
Wir sollten ein Programm schreiben um eine Liste mit Namen und Noten zu schreiben. Die Ein- und Ausgabe funktioniert auch. Jetzt sollten wir das Programm erweitern, damit die Ausgabe in alphabetischer Reihenfolge geschieht. Aber ich bekomme immer eine Fehlermeldung mit der ich nichts anfangen kann:<br />
Debug Assertion Failed<br />
(L&quot;Buffer to small&quot; &amp;&amp; 0)</p>
<p>Hier mal mein Code:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;math.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;
#include &lt;cstring&gt;
#include &lt;string&gt;

typedef struct 
{
	char name[21];
	int d[1];
	int hps[1];
	int dvm[1];
}datenbank;

using namespace std;

int main (void)
	{
		int i = 0;
		char ende = 'n';
		datenbank daten [12];
		while ((i != 10) &amp;&amp; (ende != 'J'))
		{
			printf (&quot;Bitte geben Sie den Namen ein:	&quot;);
			cin &gt;&gt; daten[i].name;
			//scanf_s (&quot;%s&quot;, daten[i].name);
			fflush (stdin);
			printf_s (&quot;Bitte geben Sie die Note in Deutsch ein:	&quot;);
			scanf_s (&quot;%i&quot;, daten[i].d);
			fflush (stdin);
			printf (&quot;Bitte geben Sie die Note in HPS ein:	&quot;);
			scanf_s (&quot;%i&quot;, daten[i].hps);
			fflush (stdin);
			printf (&quot;Bitte geben Sie die Note in DVM ein:	&quot;);
			scanf_s (&quot;%i&quot;, daten[i].dvm);
			fflush (stdin);
			printf (&quot;Beenden j/n?	:	&quot;);
			ende = toupper (getchar ());
			fflush (stdin);
			i++;
		}
		for (int j=0; j&lt;11; j++)
		{
			for (int k=0; k&lt;2; k++)
			{
				if (daten[j].name[k]&gt;daten[j+1].name[k])
				{
					char temp[22];
					strcpy_s (temp, daten[j].name);
					strcpy_s (daten[j].name, daten[j+1].name);
					strcpy_s (daten[j+1].name, temp);
					//int temp2=0;
					//temp2=daten[j].d[0];
					//daten[j].d[0]=daten[j+1].d[0];
					//daten[j+1].d[0]=temp2;
				}
				j++;
			}
		}
	    for (int m=0; m&lt;i; m++)
		{
			printf (&quot;%s %i %i %i\n&quot;, daten[m].name, daten[m].d[0], daten[m].hps[0], daten[m].dvm[0]);
		}
	_getch();

}
</code></pre>
<p>In erster Linie geht es mir darum wie ich die Namen sortieren kann. Ich weiß auch das die Noten nicht mit getauscht werden, dass schaff ich dann schon.<br />
Und warum kann ich in Zeile 29 nicht mit scanf_s arbeiten, sondern muss cin benutzen?<br />
Ach ja ich benutze MS Visual Studio 2008.</p>
<p>mfg marv87</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865623</guid><dc:creator><![CDATA[marv87]]></dc:creator><pubDate>Sun, 07 Mar 2010 19:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to Debug Assertion Failed (L&amp;quot;Buffer to small&amp;quot; &amp;amp;&amp;amp; 0) on Sun, 07 Mar 2010 20:20:08 GMT]]></title><description><![CDATA[<p>marv87 schrieb:</p>
<blockquote>
<p>in der Schule sind wir gerade dabei C++ zu lernen. Ich auch recht gut zurecht damit.</p>
</blockquote>
<p>Du meinst wohl C. Abgesehen von <code>using namespace std;</code> und ein paar Headerdateien, die du eh nicht brauchst, hast du ein C-Programm.</p>
<p>Darfst du nicht moderne C++-Mittel verwenden? Dann wäre sortieren nämlich trivial. Stringmanipulation und Speicherverwaltung übrigens auch, das gesamte Gefrickel bist du auf einen Schlag los.</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; namen;
namen.push_back(&quot;Hans&quot;);
namen.push_back(&quot;Fritz&quot;);
namen.push_back(&quot;Sepp&quot;);

std::sort(namen.begin(), namen.end());
</code></pre>
<p>Und noch so nebenbei: <code>fflush(stdin)</code> führt zu undefiniertem Programmverhalten. Zusammen mit deinen Puffern mit willkürlicher Grösse ist die Wahrscheinlichkeit sehr hoch, dass das Programm nicht stabil läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865630</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Mar 2010 20:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to Debug Assertion Failed (L&amp;quot;Buffer to small&amp;quot; &amp;amp;&amp;amp; 0) on Sun, 07 Mar 2010 20:39:30 GMT]]></title><description><![CDATA[<p>Also mein Lehrer sagt mir immer wieder ich soll fflush benutzen, auf die Fage hin warum kann er mir nicht zu meiner Zufriedenheit antworten.<br />
Er meint auch wir lernen C++, aber im Prinzip hast du ja schon erkannt das wir mehr C als C++ machen.<br />
Ich kopiere halt einfach die Headerdateien/Programmkopf von einem vorherigen Programm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865635</guid><dc:creator><![CDATA[marv87]]></dc:creator><pubDate>Sun, 07 Mar 2010 20:39:30 GMT</pubDate></item></channel></rss>