<?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[unerklärliches Problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade, einen Algorithmus umzusetzen. Mit der Programmierung war ich eigentlich fertig, bis ich kompiliert habe. Mein Programm ist abgestürtzt und ich habe per Ausgaben den Ort des Fehlers gefunden. Nur kann ich nicht erklären WIESO dort ein Fehler ist. Der Code ist ein bisschen länger, deswegen poste ich einen vom aufbau gleichen Code.</p>
<pre><code class="language-cpp">void machWas( std::vector&lt; something &gt; &amp;foo )
{
	//Hier funktioniert alles noch
	// foo wird geleert
	foo.clear();

	//foo wird neu befüllt
	//...
}

void machNochEtwas( std::vector&lt; something &gt; &amp;foo )
{
	//Ein zusätzlicher Vektor wird erstellt und gefüllt
	//macht irgendwas ... 

	//Der zusätzliche Vektor wird gelöscht ( clear() )
	MessageBox( NULL, &quot;bla&quot;, &quot;blubb&quot;, MB_OK ); //Dieses Fenster sehe ich noch.
}

bool controller()
{
	std::vector&lt; something &gt; foo;

	//Vorher definieren, da ich sehr auf Performance achten muss.
	// &quot;x_max&quot; und &quot;y_max&quot; werden vorher berechnet.
	unsigned int x = 0;
	unsigned int y = 0;
	for( y = 0; y &lt; y_max; ++y )
	{
		for( x = 0; x &lt; x_max; ++x )
		{
			machWas( foo );
			machNochEtwas( foo );
			MessageBox( NULL, &quot;bla&quot;, &quot;blubb&quot;, MB_OK ); //Das hier nicht mehr!!!
		}
	}
}
</code></pre>
<p>Wie im Code steht, sehe ich die erste MessageBox, die zweite aber nicht mehr, dazwischen schreit der Debugger irgendwas von Segmentation Fault. Aber wo soll denn diese Zugriffsverletzung sein? In welchem Codeteil? Zwischen den MessageBoxen ist visuell nicht als eine &quot;}&quot;. Da wuselt nur der Garbage Collector herum. Nur da wüsste ich nicht, wieso dieser den Fehler erzeugt.</p>
<p>Wenn dieser Code nichts nützt, kann ich auch den Vollständigen Code pasten, doch außer dem Inhalt dürfte da nix anders sein.</p>
<p>MfG. Christoph Ludwig</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252954/unerklärliches-problem</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 03:19:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252954.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Oct 2009 20:49:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unerklärliches Problem on Mon, 26 Oct 2009 20:49:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade, einen Algorithmus umzusetzen. Mit der Programmierung war ich eigentlich fertig, bis ich kompiliert habe. Mein Programm ist abgestürtzt und ich habe per Ausgaben den Ort des Fehlers gefunden. Nur kann ich nicht erklären WIESO dort ein Fehler ist. Der Code ist ein bisschen länger, deswegen poste ich einen vom aufbau gleichen Code.</p>
<pre><code class="language-cpp">void machWas( std::vector&lt; something &gt; &amp;foo )
{
	//Hier funktioniert alles noch
	// foo wird geleert
	foo.clear();

	//foo wird neu befüllt
	//...
}

void machNochEtwas( std::vector&lt; something &gt; &amp;foo )
{
	//Ein zusätzlicher Vektor wird erstellt und gefüllt
	//macht irgendwas ... 

	//Der zusätzliche Vektor wird gelöscht ( clear() )
	MessageBox( NULL, &quot;bla&quot;, &quot;blubb&quot;, MB_OK ); //Dieses Fenster sehe ich noch.
}

bool controller()
{
	std::vector&lt; something &gt; foo;

	//Vorher definieren, da ich sehr auf Performance achten muss.
	// &quot;x_max&quot; und &quot;y_max&quot; werden vorher berechnet.
	unsigned int x = 0;
	unsigned int y = 0;
	for( y = 0; y &lt; y_max; ++y )
	{
		for( x = 0; x &lt; x_max; ++x )
		{
			machWas( foo );
			machNochEtwas( foo );
			MessageBox( NULL, &quot;bla&quot;, &quot;blubb&quot;, MB_OK ); //Das hier nicht mehr!!!
		}
	}
}
</code></pre>
<p>Wie im Code steht, sehe ich die erste MessageBox, die zweite aber nicht mehr, dazwischen schreit der Debugger irgendwas von Segmentation Fault. Aber wo soll denn diese Zugriffsverletzung sein? In welchem Codeteil? Zwischen den MessageBoxen ist visuell nicht als eine &quot;}&quot;. Da wuselt nur der Garbage Collector herum. Nur da wüsste ich nicht, wieso dieser den Fehler erzeugt.</p>
<p>Wenn dieser Code nichts nützt, kann ich auch den Vollständigen Code pasten, doch außer dem Inhalt dürfte da nix anders sein.</p>
<p>MfG. Christoph Ludwig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798802</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Mon, 26 Oct 2009 20:49:53 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Mon, 26 Oct 2009 21:05:47 GMT]]></title><description><![CDATA[<p>Die Referenz von machWas zeigt ja auf den Speicherbereich von foo (Zeile 24). Wenn du diese Referenz nun clearst, clearst du auch den Speicherbereich von foo (Zeile 24). Der erste Loop dürfte noch gut gehen, beim Zweiten sollte foo (Zeile 24) dann schon gecleart worden sein. Also einfach den Referenz-Operator da weg...</p>
<p>EDIT:<br />
Verdammt, überlesen.</p>
<p>EDIT2:<br />
Wie befüllst du dein Array? Zeig mal den Code (<a href="http://codepad.org" rel="nofollow">codepad.org</a>).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798806</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Mon, 26 Oct 2009 21:05:47 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Mon, 26 Oct 2009 21:00:37 GMT]]></title><description><![CDATA[<p>Es gibt in C++ direkt keinen Garbage-Collektor. Was du bestimmt meinst, ist, dass alle lokalen Vaiablen in machNochwas() wie in jeder anderen Funktion am Ende freigegeben werden. Und da muss es wohl irgendein Objekt geben, dessen Destruktor zickt.</p>
<p>EDIT: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20193">@Kóyaánasqatsi</a>: foo wird in machWas() neu befüllt <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/1798809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798809</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Mon, 26 Oct 2009 21:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Mon, 26 Oct 2009 21:00:02 GMT]]></title><description><![CDATA[<p>Was für ein Garbage Collector? - C++ bietet nämlich gar keinen an.. Und wahrscheinlich liegt auch irgendwo da dein Problem.. Du scheinst die Speicherverwaltung in C++ nicht zu kennen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798810</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 26 Oct 2009 21:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Mon, 26 Oct 2009 21:11:20 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20193">@Kóyaánasqatsi</a>:<br />
Ich kann dir nicht ganz folgen. In machWas() wird foo zuerst gecleart. Danach, in der selben Funktion, wird er neu bestückt.<br />
Aber auf die Referenz kann ich nicht verzichten, da foo in machWas() geändert wird. die änderung ist Grundlage für machNochEtwas(). Also entweder Referenz oder Pointer.</p>
<p>@XMaster: Wenn es da ein Objekt geben würde. In dieser Funktion sind ein vector&lt;int&gt;, 3 Integer und 1 float-variable. mehr nicht.</p>
<p>Da das wohl fehlgeschlagen ist, paste ich mal den ganzen Code:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;allegro.h&gt;

struct WeichzeichnenRGB
{
	//Die Farbewerte
	int r;
	int g;
	int b;

	//Die Gewichtung der Farbe
	float weighting;

	//Die Gruppe des Feldes
	int group;

	//Existiert dieses Pixel überhaupt?
	bool exist;
};

void createMatrix( std::vector&lt; WeichzeichnenRGB &gt; &amp;matrix, BITMAP *image, unsigned int posx, unsigned int posy, int factor )
{
	int x = 0;
	int y = 0;
	int x_max = ( posx + factor );
	int y_max = ( posy + factor );

	//Die alten Einträge in der Matrix löschen
	matrix.clear();

	//Die Integer-Farbe, aus der später die RGB farbe berechnet wird.
	int color = 0;

	//Die Matrix mit neuen Werten belegen
	for( y = ( posy - factor ); y &lt; y_max; ++y )
	{
		for( x = ( posx - factor ); x &lt; x_max; ++x )
		{
			//Ein tmporäres Element, welches dann in die Matrix gelegt wird.
			WeichzeichnenRGB wrgb;

			//Existiert dieses Pixel?
			if( x &gt;= 0  &amp;&amp;  y &gt;= 0  &amp;&amp;  x &lt; image-&gt;w  &amp;&amp;  y &lt; image-&gt;h )
			{
				//Ja, es existiert -&gt; Die Farbwerte auslesen
				color = _getpixel32( image, x, y );

				//Die RGB-Werte setzen
				wrgb.r = getr32( color );
				wrgb.g = getg32( color );
				wrgb.b = getb32( color );

				//Eintragen, dass das Pixel existiert.
				wrgb.exist = true;
			}
			else
			{
				//Nein, das Pixel existiert nicht!
				wrgb.exist = false;
			}

			//Die Gruppe berechnen und zuweisen
			wrgb.group = factor - ( ( posx - x ) + ( posy - y ) );

			//Die temporären Informationen in die Matrix eintragen
			matrix.insert( matrix.end(), wrgb );
		}
	}
}

void matrixWeight( std::vector&lt; WeichzeichnenRGB &gt; &amp;matrix, int factor )
{
	//Die Anzahl aller Gruppen zählen
	std::vector&lt;int&gt; groupNumbers( factor, 0 );

	int i     = 0;
	int i_max = matrix.size();
	for( i = 0; i &lt; i_max; ++i )
	{
		groupNumbers[( matrix[i].group - 1 )]++;
	}

	//Die Gesamtanzahl aller Felder berechnen
	int all = 0;
	i_max = groupNumbers.size();
	for( i = 0; i &lt; i_max; ++i )
	{
		all += ( i + 1 ) * groupNumbers[i];
	}

	//Den Faktor berechnen
	float singleFactor = 100.0 / static_cast&lt;float&gt;( all );

	//Den Faktor zu den Gruppen speichern
	i_max = matrix.size();
	for( i = 0; i &lt; i_max; ++i )
	{
		matrix[i].weighting = ( static_cast&lt;float&gt;( matrix[i].group ) * singleFactor ) / 100.0;
	}
	groupNumbers.clear();
	allegro_message( &quot;bla&quot; );
}

int getMatrixColor( std::vector&lt; WeichzeichnenRGB &gt; matrix )
{
	float resultR = 0.0;
	float resultG = 0.0;
	float resultB = 0.0;

	int i_max = matrix.size();
	for( int i = 0; i &lt; i_max; ++i )
	{
		resultR += matrix[i].r * matrix[i].weighting;
		resultG += matrix[i].g * matrix[i].weighting;
		resultB += matrix[i].b * matrix[i].weighting;
	}

	return makecol(
			static_cast&lt;int&gt;( resultR ),
			static_cast&lt;int&gt;( resultG ),
			static_cast&lt;int&gt;( resultB ) );
}

bool weichzeichnen( BITMAP *image, int factor=5 )
{
	//Existiert das Bild?
	if( image == NULL )
	{
		return false;
	}
	if( factor &lt;= 0 )
	{
		return false;
	}

	//Die Werte des Bildes im richtigen Typ speichern
	unsigned int imageWidth = image-&gt;w;
	unsigned int imageHeight = image-&gt;h;

	//Ein temporäres Bild erzeugen, welches bemalt wird, um keine Manipulationen im Algorithmus zu erzeugen.
	BITMAP *tmp = create_bitmap( imageWidth, imageHeight );
	if( tmp == NULL )
	{
		return false;
	}
	clear_to_color( tmp, 0 );

	//Die Schleifenzähler vorher definieren, da es sonst in der Schleife zu unnötig vielen Variablen-Erzeugungen kommt.
	unsigned int x = 0;
	unsigned int y = 0;

	//Mit Hilfe dieser Matrix wird die Gewichtung eingeteilt und
	std::vector&lt; WeichzeichnenRGB &gt; rgbMatrix;

	//Jedes Pixel soll durchlaufen werden!
	for( y = 0; y &lt; imageHeight; ++y )
	{
		for( x = 0; x &lt; imageWidth; ++x )
		{
			//Das aktuelle Pixel liegt nun bei image[x][y].

			//Eine Matrix mit den Farbwerten der umliegenden Pixel erstellen
			createMatrix( rgbMatrix, image, x, y, factor );

			//Die Gewichtung berechnen und den einzelnen Pixeln in der Matrix zuweisen
			matrixWeight( rgbMatrix, factor );
allegro_message( &quot;blubb&quot; );
			//Die neue Farbe berechnen
			putpixel( tmp, x, y, getMatrixColor( rgbMatrix ) );
		}
	}

	//Das temporäre Bild auf das übergeben Zeichnen
	draw_sprite( image, tmp, 0, 0 );
	destroy_bitmap( tmp );

	return true;
}

int main()
{
	allegro_init();
	set_color_depth( 32 );
	set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
	install_keyboard();

	BITMAP *background = create_bitmap( SCREEN_W, SCREEN_H );
	if( background == NULL )
		return -1;
	clear_to_color( background, makecol( 255, 255, 255 ) );
	rectfill( background, 14, 14, SCREEN_W - 15, SCREEN_H - 15, 0 );

	//Das Original zeichnen
	draw_sprite( screen, background, 0, 0 );
	while( !key[KEY_SPACE] );

	//Das manipulierte Bild zeichnen
	weichzeichnen( background );
	while( !key[KEY_ESC] );

	destroy_bitmap( background );
	return 0;
}
END_OF_MAIN()
</code></pre>
<p>Ich hoffe, ihr könnte den Fehler jetzt finden. Ich bin mit meinem Latain em Ende <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>MfG. Christoph Ludwig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798815</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Mon, 26 Oct 2009 21:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 09:27:34 GMT]]></title><description><![CDATA[<p>Ich hab oben den Code gepostet. Ich lösche da nur den Vektor. Der Debugger zeigt mir da auch nix an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798941</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 09:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 09:54:57 GMT]]></title><description><![CDATA[<p>zu faul?</p>
<p>ich hab den Fehler gesucht, nur sagt mit der Debugger auch nix vernünftiges:</p>
<p>Program recieved signal SIGSEGV, Segmentation Fault<br />
Call Stack:</p>
<p>67A30C61 uvszprintf()<br />
00000000 ??()</p>
<p>Kannst du etwas damit anfangen? ich nicht. Und ich bin auch kein C++-Profi, deshalb habe ich hier lediglich gefragt. Und wenn man keine Ahnung/Erfahrung hat, kann man das NICHT faul nennen!<br />
Ich habe hier gefragt, weil es hier Leute gibt, wie wesentlich mehr Ahnung als ich haben und den Fehler durch ihre Erfahrung finden, oder weil sie diesen Eventuell auch schon hatten. Und wenn du nicht bereit bist, mir zu helfen, dann brauchst du hier auch nicht schreiben!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798956</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 09:54:57 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 10:06:32 GMT]]></title><description><![CDATA[<p>ChristophLu schrieb:</p>
<blockquote>
<p>ich hab den Fehler gesucht, nur sagt mit der Debugger auch nix vernünftiges:</p>
<p>Program recieved signal SIGSEGV, Segmentation Fault<br />
Call Stack:</p>
<p>67A30C61 uvszprintf()<br />
00000000 ??()</p>
</blockquote>
<p>Debugger bedienen können gehört zum Programmieren dazu. Ein Debugger ist kein automatischer Fehlerfinder, der mit dem virtuellen Finger auf die Stelle zeigt, die falsch ist.</p>
<p>Dein Debugger hat doch sicher eine Funktion, um zeilen/blockweise durch den Code zu steppen? Lauf damit durch den Code und schau dir in jedem Schritt an, was passiert. So findet man Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798963</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Tue, 27 Oct 2009 10:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 11:46:45 GMT]]></title><description><![CDATA[<p>Ganz nützlich ist es auch Teile zu kommentieren und wenn der Fehler immer noch da ist, dann weiter machen, bis er weg ist und dann hast du die Stelle schon fast, wo es Probleme gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799036</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 27 Oct 2009 11:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 12:28:38 GMT]]></title><description><![CDATA[<p>TGGC: Ist der Link für mich? Wenn ja: Willst du mich verarschen? Was soll das?</p>
<p>Ich hab jetzt den Fehler gefunden und der Code funktioniert einwandfrei. Ich habe viel früher falsche Berechnungen durchgeführt und habe somit falsche Indexe bei groupNumbers verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799073</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 12:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 13:28:25 GMT]]></title><description><![CDATA[<p>Du meinst die Zeile</p>
<pre><code class="language-cpp">groupNumbers[( matrix[i].group - 1 )]++;
</code></pre>
<p>?</p>
<p>Ist auch sehr gefährlich, da du keinen Check auf die Indizes macht, benutze daher besser die Funktion 'at' statt [], dann kriegst du wenigstens eine Exception.</p>
<p>Und bei der Funktion getMatrixColor solltest du auch als Parameter eine konstante Referenz verwenden (ansonsten kopierst du jedesmal den gesamten vector):</p>
<pre><code class="language-cpp">getMatrixColor( const std::vector&lt; WeichzeichnenRGB &gt; &amp;matrix )
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799108</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 27 Oct 2009 13:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 14:29:25 GMT]]></title><description><![CDATA[<p>Th69:<br />
Die Indexes sind an der Stelle richtig, da ich sie vorher schon kontrolliere, sie ändern sich in der Zwischenzeit nicht.<br />
Das mit dem const ist richtig, hab ich vergessen. Danke!</p>
<p>TGGC:<br />
Und deswegen schickst du ein Google-Link für das auskommentieren für Code. Hälst du mich eigentlich für total bescheuert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799146</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 14:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 14:35:30 GMT]]></title><description><![CDATA[<p>ChristophLu schrieb:</p>
<blockquote>
<p>TGGC:<br />
Und deswegen schickst du ein Google-Link für das auskommentieren für Code. Hälst du mich eigentlich für total bescheuert?</p>
</blockquote>
<p>Lass dich von dem nicht ärgern, der schickt seine Linksammlung bei jedem einzelnen Post mit, ganz egal obs die Leute interessiert oder nicht. Kümmer dich eifnach nciht drum. Back to topic. <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/1799149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799149</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 27 Oct 2009 14:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 15:27:44 GMT]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>was mich noch ein bisschen stört ... ich habe groupNumbers im beispiel mit 5 Feldern initialisiert ... nach einer ausgabe der indexe waren da unterschiedliche werte von -10 bis +10.<br />
Da sollte das Programm ja schon abstürtzen. Aber ich habe ja noch die MessageBom am Ende der Funktion gesehen. Wie ist das möglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799185</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 15:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 15:51:17 GMT]]></title><description><![CDATA[<p>Genau deswegen habe ich ja auf std::vector.at() hingewiesen!!!</p>
<p>Du schreibst dann einfach in irgendwelchen Speicher, der nicht zum vector gehört, und ob bzw. wann dann dein Programm abstürzt ist völlig undefiniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799200</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 27 Oct 2009 15:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 15:56:38 GMT]]></title><description><![CDATA[<p>das hab ich doch gar nicht gefragt ... lies bitte richtig. In der jetzigen Version des Programmes sind die Indexe auf keinen Fall falsch ... In dem Programm vorher( der code, den ich gepostet habe ), habe ich auf Indexe von -10 bis +10 zugegriffen, obwohl nur von 0 bis 4 gültig wären. Aber dennoch ist das Programm nicht abgestürtzt( Ich habe ja noch die MessageBox danach gesehen ). Warum? Ich hatte den Speicher vorher deutlich überschritten?<br />
Das ist die Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799205</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 15:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 15:59:19 GMT]]></title><description><![CDATA[<p>ChristophLu schrieb:</p>
<blockquote>
<p>Warum? Ich hatte den Speicher vorher deutlich überschritten?</p>
</blockquote>
<p>Und genau darauf hat Th69 die richtige Antwort geschrieben. Der Zugriff mit falschen Indizes ist <em>undefiniert</em>, was nicht gleichbedeutend ist mit &quot;das Programm stürzt ab&quot;. Undefiniert heißt eben dass alles passieren kann. Wennd er Compiler Spaß dran hat spielt dein Rechner je nach falschem Index eine beliebige Nationalhymne auf dem PC-Speaker, so er denn einen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799207</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 27 Oct 2009 15:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärliches Problem on Tue, 27 Oct 2009 16:01:09 GMT]]></title><description><![CDATA[<p>achso. Ich hatte gedacht, das das Programm bei sowas abstürtzt. Zumindest war das bis jetzt immer der Fall.</p>
<p>Aber wenn das so ist, ziehe ich alles zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799209</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Tue, 27 Oct 2009 16:01:09 GMT</pubDate></item></channel></rss>