<?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[Problem mit Strukturen, es werden andere Werte angezeigt als erwartet]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>ich habe mal wieder ein Problem, diesesmal poste ich gleich im richtigen Forum. <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="😉"
    /> Eventuell ist dieses Problem eine Fortsetzung von<br />
[url]<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-142189.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-142189.html</a> [/url]</p>
<p>In dem Beispielprogramm wird eine Struktur &quot;statistics&quot; initialisiert und mit Werten belegt. Anschließend wird die Struktur zweimal mit der gleichen Methode ausgegeben. Die Ausgaben unterscheiden sich deutlich.</p>
<p>Ich habe keine Ahnung, wo der Fehler liegt. Kann mir jemand die Lösung verraten oder den entscheidenen Tip geben?</p>
<p>Vielen Dank schonmal. <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>Auschnitt aus der Ausgabe:</p>
<p>...<br />
(0,3) AV: 1 Min: 2 Max: 3 Num: 4<br />
...<br />
(0,5) AV: 1 Min: 2 Max: 3 Num: 4<br />
...<br />
-------------------------------------------<br />
-------------------------------------------<br />
...<br />
(0,3) AV: 1 Min: 2 Max: 1 Num: 2<br />
...<br />
(0,5) AV: 3 Min: 4 Max: 1 Num: 2<br />
...</p>
<p>Analyser.h</p>
<pre><code class="language-cpp">//std c++ header
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;

//own header
#include &quot;FileManager.h&quot;
#ifndef Analyser_h
#define Analyser_h

typedef struct {
    int avDist;
    int minDist;
    int maxDist;
    int number;    
} Statistics;

class Analyser{

public:
        ~Analyser();         

       Statistics** statistics;

       //inits the statistic variables
       void initStatistics(); 

       void ausgabe(int i,int j);      
};
#endif
</code></pre>
<p>Analyser.cpp</p>
<pre><code class="language-cpp">//own header
#include &quot;Analyser.h&quot;

#ifndef Analyser_cpp
#define Analyser_cpp

// destructor -----------------------------------------------------
Analyser::~Analyser(){
        if(statistics) delete statistics;        
} 

void Analyser::initStatistics(){

    int anzA=9,nor=3;    

    statistics=new Statistics*[anzA];      
    for (short i=0;i&lt;anzA;i++){
      statistics[i]=new Statistics[nor];    
    }

    for (int i=0;i&lt;nor;i++)
    for (int j=0;j&lt;anzA;j++){

      statistics[i][j].avDist=1;
      statistics[i][j].minDist=2;
      statistics[i][j].maxDist=3;
      statistics[i][j].number=4;  

      ausgabe(i,j);     

     }

    cout &lt;&lt;&quot;-------------------------------------------------------&quot; &lt;&lt;endl;
    cout &lt;&lt;&quot;-------------------------------------------------------&quot; &lt;&lt;endl;        

    for (int i=0;i&lt;nor;i++)
    for (int j=0;j&lt;anzA;j++){
        ausgabe(i,j);    
    }     
}

void Analyser::ausgabe(int i,int j){
           cout &lt;&lt;&quot;(&quot;&lt;&lt;i&lt;&lt;&quot;,&quot;&lt;&lt;j&lt;&lt; &quot;)  &quot; 
           &lt;&lt; &quot; AV:  &quot; &lt;&lt; statistics[i][j].avDist 
           &lt;&lt; &quot; Min: &quot; &lt;&lt; statistics[i][j].minDist
           &lt;&lt; &quot; Max: &quot; &lt;&lt; statistics[i][j].maxDist 
           &lt;&lt; &quot; Num: &quot; &lt;&lt; statistics[i][j].number &lt;&lt; endl;   
}

int main(int argc, char** argv) {

Analyser a;
a.initStatistics(); 
system(&quot;pause&quot;); 
}

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/142310/problem-mit-strukturen-es-werden-andere-werte-angezeigt-als-erwartet</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:53:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142310.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Mar 2006 13:28:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Strukturen, es werden andere Werte angezeigt als erwartet on Wed, 29 Mar 2006 13:28:22 GMT]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>ich habe mal wieder ein Problem, diesesmal poste ich gleich im richtigen Forum. <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="😉"
    /> Eventuell ist dieses Problem eine Fortsetzung von<br />
[url]<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-142189.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-142189.html</a> [/url]</p>
<p>In dem Beispielprogramm wird eine Struktur &quot;statistics&quot; initialisiert und mit Werten belegt. Anschließend wird die Struktur zweimal mit der gleichen Methode ausgegeben. Die Ausgaben unterscheiden sich deutlich.</p>
<p>Ich habe keine Ahnung, wo der Fehler liegt. Kann mir jemand die Lösung verraten oder den entscheidenen Tip geben?</p>
<p>Vielen Dank schonmal. <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>Auschnitt aus der Ausgabe:</p>
<p>...<br />
(0,3) AV: 1 Min: 2 Max: 3 Num: 4<br />
...<br />
(0,5) AV: 1 Min: 2 Max: 3 Num: 4<br />
...<br />
-------------------------------------------<br />
-------------------------------------------<br />
...<br />
(0,3) AV: 1 Min: 2 Max: 1 Num: 2<br />
...<br />
(0,5) AV: 3 Min: 4 Max: 1 Num: 2<br />
...</p>
<p>Analyser.h</p>
<pre><code class="language-cpp">//std c++ header
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;

//own header
#include &quot;FileManager.h&quot;
#ifndef Analyser_h
#define Analyser_h

typedef struct {
    int avDist;
    int minDist;
    int maxDist;
    int number;    
} Statistics;

class Analyser{

public:
        ~Analyser();         

       Statistics** statistics;

       //inits the statistic variables
       void initStatistics(); 

       void ausgabe(int i,int j);      
};
#endif
</code></pre>
<p>Analyser.cpp</p>
<pre><code class="language-cpp">//own header
#include &quot;Analyser.h&quot;

#ifndef Analyser_cpp
#define Analyser_cpp

// destructor -----------------------------------------------------
Analyser::~Analyser(){
        if(statistics) delete statistics;        
} 

void Analyser::initStatistics(){

    int anzA=9,nor=3;    

    statistics=new Statistics*[anzA];      
    for (short i=0;i&lt;anzA;i++){
      statistics[i]=new Statistics[nor];    
    }

    for (int i=0;i&lt;nor;i++)
    for (int j=0;j&lt;anzA;j++){

      statistics[i][j].avDist=1;
      statistics[i][j].minDist=2;
      statistics[i][j].maxDist=3;
      statistics[i][j].number=4;  

      ausgabe(i,j);     

     }

    cout &lt;&lt;&quot;-------------------------------------------------------&quot; &lt;&lt;endl;
    cout &lt;&lt;&quot;-------------------------------------------------------&quot; &lt;&lt;endl;        

    for (int i=0;i&lt;nor;i++)
    for (int j=0;j&lt;anzA;j++){
        ausgabe(i,j);    
    }     
}

void Analyser::ausgabe(int i,int j){
           cout &lt;&lt;&quot;(&quot;&lt;&lt;i&lt;&lt;&quot;,&quot;&lt;&lt;j&lt;&lt; &quot;)  &quot; 
           &lt;&lt; &quot; AV:  &quot; &lt;&lt; statistics[i][j].avDist 
           &lt;&lt; &quot; Min: &quot; &lt;&lt; statistics[i][j].minDist
           &lt;&lt; &quot; Max: &quot; &lt;&lt; statistics[i][j].maxDist 
           &lt;&lt; &quot; Num: &quot; &lt;&lt; statistics[i][j].number &lt;&lt; endl;   
}

int main(int argc, char** argv) {

Analyser a;
a.initStatistics(); 
system(&quot;pause&quot;); 
}

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026484</guid><dc:creator><![CDATA[Cool_Fire]]></dc:creator><pubDate>Wed, 29 Mar 2006 13:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Strukturen, es werden andere Werte angezeigt als erwartet on Wed, 29 Mar 2006 13:36:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<pre><code class="language-cpp">for (int i=0;i&lt;nor;i++)
    for (int j=0;j&lt;anzA;j++){
</code></pre>
<p>Hier müssen die Abbruchbedingungen, sprich nor und anzA vertauscht werden ;).</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026492</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Wed, 29 Mar 2006 13:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Strukturen, es werden andere Werte angezeigt als erwartet on Wed, 29 Mar 2006 14:02:48 GMT]]></title><description><![CDATA[<p>[edit]</p>
<p>Danke Caipi <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>genauso klappt es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026519</guid><dc:creator><![CDATA[Cool_Fire]]></dc:creator><pubDate>Wed, 29 Mar 2006 14:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Strukturen, es werden andere Werte angezeigt als erwartet on Wed, 29 Mar 2006 14:04:59 GMT]]></title><description><![CDATA[<p>Zwischen der Initialisierung der Statistics und der Belegung und Ausgabe ist 'anzA' und 'nor' vertauscht. Du schreibst und liest in nicht allokierten Speicher.</p>
<p>Im Übrigen löscht Du die einzelnen Statistics[nor]-Felder im Konstruktor nicht (Memory-Leak) und dem Analyser fehlt ein Copy-Konstruktor und Assignment-Operator. Falls Du sie nicht brauchst, so mache sie private.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026535</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 29 Mar 2006 14:04:59 GMT</pubDate></item></channel></rss>