<?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[Modulo liefert Wert größer als Divisor]]></title><description><![CDATA[<p>Hallo</p>
<p>Mir ist etwas passiert, das ich mit meinem Wissen nur durch einen Berechnungsfehler erklären kann, was ich aber kaum glauben kann. Jedenfalls ist das Ergebnis einer Modulo-Operation größer als der Divisor.</p>
<p>Es geht um folgenden Codeausschnitt, der mir in der 3. Zeile ein out of range geliefert hat.</p>
<pre><code>int changed_square = rand() % (height_*width_);
  int offset = rand() % (height_*width_);
  while (squares_[changed_square].value_ == -1){
</code></pre>
<p>Die Werte laut Debugger:<br />
height_ = 8 (ist ein int)<br />
width_ = 8 (auch ein int)<br />
squares_ ... std::vector mit size=64<br />
changed_square = 123 (wie kann das größer als 63 sein???)<br />
offset = 31 (das passt)</p>
<p>Unterbrochen in Zeile 3 (eben beim vector-Zugriff)</p>
<p>Ich verwende Visual Studio 2013 mit dem includierten Debugger, bei meinem Programm handelt es sich um eine wxWidgets-Anwendung (ohne Multithreading)</p>
<p>Kann mir jemand erklären, wieso changed_square größer 63 ist?</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322347/modulo-liefert-wert-größer-als-divisor</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:51:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322347.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Dec 2013 13:20:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Modulo liefert Wert größer als Divisor on Mon, 16 Dec 2013 13:20:58 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Mir ist etwas passiert, das ich mit meinem Wissen nur durch einen Berechnungsfehler erklären kann, was ich aber kaum glauben kann. Jedenfalls ist das Ergebnis einer Modulo-Operation größer als der Divisor.</p>
<p>Es geht um folgenden Codeausschnitt, der mir in der 3. Zeile ein out of range geliefert hat.</p>
<pre><code>int changed_square = rand() % (height_*width_);
  int offset = rand() % (height_*width_);
  while (squares_[changed_square].value_ == -1){
</code></pre>
<p>Die Werte laut Debugger:<br />
height_ = 8 (ist ein int)<br />
width_ = 8 (auch ein int)<br />
squares_ ... std::vector mit size=64<br />
changed_square = 123 (wie kann das größer als 63 sein???)<br />
offset = 31 (das passt)</p>
<p>Unterbrochen in Zeile 3 (eben beim vector-Zugriff)</p>
<p>Ich verwende Visual Studio 2013 mit dem includierten Debugger, bei meinem Programm handelt es sich um eine wxWidgets-Anwendung (ohne Multithreading)</p>
<p>Kann mir jemand erklären, wieso changed_square größer 63 ist?</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372172</guid><dc:creator><![CDATA[Senfti]]></dc:creator><pubDate>Mon, 16 Dec 2013 13:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to Modulo liefert Wert größer als Divisor on Mon, 16 Dec 2013 13:52:49 GMT]]></title><description><![CDATA[<p>Ich sehe da keinen Fehler.</p>
<p>Kannst du ein kompilierbares Minimialbeispiel posten, bei dem der Fehler auftritt?</p>
<p>*Edit<br />
Was passiert denn in der Schleife? Wird die je ausgeführt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372175</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 16 Dec 2013 13:52:49 GMT</pubDate></item><item><title><![CDATA[Reply to Modulo liefert Wert größer als Divisor on Mon, 16 Dec 2013 14:24:51 GMT]]></title><description><![CDATA[<p>Bin ich ein Esel^^.</p>
<p>Der Fehler ist nicht beim ersten Schleifendurchlauf aufgetreten, sondern erst später. In der Schleife gab es beim Ändern von changed_square die (unwahrscheinliche) Möglichkeit, dass es größer 64 wird.</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/2372190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372190</guid><dc:creator><![CDATA[Senfti]]></dc:creator><pubDate>Mon, 16 Dec 2013 14:24:51 GMT</pubDate></item></channel></rss>