<?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[&amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn man im Debugger bei einer Funktion rausfliegt, wo nur ein Wert zurückggegeben wird, mit der Meldung &quot;ungültige Gleitkommaoperation&quot;, aber man führt gar keine Gleitkommaoperation durch (jedenfalls nicht in dieser Funktion), woran kann das liegen?</p>
<p>(Klasse DS erbt indirekt von Klasse S)</p>
<pre><code class="language-cpp">class S {
   protected:
   double c;

   public:
   double getC();
}

double S::getC() {
     return c;
}

class CI {
	DS* ds;
}

class A {
   CI* ci[xsize][ysize];

}

void A::calculate() {

     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {
             if (ci[x][y]-&gt;ds!=0)
                double test=ci[x][y]-&gt;ds-&gt;getC();
         }
     }
}
</code></pre>
<p>Und wenn ich dann in der Methode calculate() bin und mich so durchsteppe, fliege ich immer in S::getC() raus mit der Meldung &quot;ungültige Gleitkommaoperation&quot;. Dabei rechne ich da ja gar nicht (erst in der (hier nicht dargestellten) nächsten Zeile von calculate, die ich aber nie erreiche).<br />
Ich hoffe, ich hab alles wesentliche vom Programm angegeben.</p>
<p>Würde mich sehr freuen über Hilfe!<br />
Und schöne Weihnachten noch :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230388/quot-ungültige-gleitkommaoperation-quot-in-funktion-die-nichts-berechnet</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 03:31:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230388.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Dec 2008 23:12:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Thu, 25 Dec 2008 23:13:27 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn man im Debugger bei einer Funktion rausfliegt, wo nur ein Wert zurückggegeben wird, mit der Meldung &quot;ungültige Gleitkommaoperation&quot;, aber man führt gar keine Gleitkommaoperation durch (jedenfalls nicht in dieser Funktion), woran kann das liegen?</p>
<p>(Klasse DS erbt indirekt von Klasse S)</p>
<pre><code class="language-cpp">class S {
   protected:
   double c;

   public:
   double getC();
}

double S::getC() {
     return c;
}

class CI {
	DS* ds;
}

class A {
   CI* ci[xsize][ysize];

}

void A::calculate() {

     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {
             if (ci[x][y]-&gt;ds!=0)
                double test=ci[x][y]-&gt;ds-&gt;getC();
         }
     }
}
</code></pre>
<p>Und wenn ich dann in der Methode calculate() bin und mich so durchsteppe, fliege ich immer in S::getC() raus mit der Meldung &quot;ungültige Gleitkommaoperation&quot;. Dabei rechne ich da ja gar nicht (erst in der (hier nicht dargestellten) nächsten Zeile von calculate, die ich aber nie erreiche).<br />
Ich hoffe, ich hab alles wesentliche vom Programm angegeben.</p>
<p>Würde mich sehr freuen über Hilfe!<br />
Und schöne Weihnachten noch :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635570</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Thu, 25 Dec 2008 23:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Thu, 25 Dec 2008 23:18:02 GMT]]></title><description><![CDATA[<p>Könnte es sein, dass der Gleitkommawert <code>c</code> einen ungültigen Wert besitzt, zum Beispiel ein NaN?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635573</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 25 Dec 2008 23:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Thu, 25 Dec 2008 23:27:48 GMT]]></title><description><![CDATA[<p>Nein, der hat immer den Wert 0.2529... (noch ein paar Nachkommastellen), soll auch immer ein Wert zwischen 0 und 1 sein.<br />
Übrigens, ich arbeite mit dem Borland Builder 5.0, falls das was zur Sache tut...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635578</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Thu, 25 Dec 2008 23:27:48 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Fri, 26 Dec 2008 10:59:30 GMT]]></title><description><![CDATA[<p>Du solltest mal gucken, ob alle Pointer richtig gesetzt sind etc - ich habe schon bei ganz anderen Fehlern die Fehlermeldung ungültige Gleitkommaoperation bekommen ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635712</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 26 Dec 2008 10:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Fri, 26 Dec 2008 12:30:16 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>hm, da hab ich jetzt geschaut, mir ist nichts aufgefallen. Es ist auch ein bißchen blöd im Debugger nachzuvollziehen, da der Fehler nicht in jeder Array-komponente von ci auftritt (neben der Tatsache, daß in ci in manchen Fällen ds nicht gesetzt ist, passiert es aber auch nicht in jedem Fall, wo ds gesetzt ist).</p>
<p>Ich hab jetzt mal den Code aufgesplittet:</p>
<pre><code class="language-cpp">double S::getC() {
     double test=c;
     return c;
}
</code></pre>
<p>aber damit hab ich auch nicht mehr rausgefunden.<br />
Ich bin jetzt am überlegen, ob ich mir den Assembler angucken soll, aber es ist Lichtjahre her, daß ich mich mit Assembler beschäftigt habe und wie das dann alles im BCB dargestellt wird, muß ich dann auch erstmal rausfinden. Nur langsam hab ich keine Ideen mehr. Mist!</p>
<p>Also, wenn jemand ne Idee hat, was es sein könnte, wäre ich superfroh!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635743</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Fri, 26 Dec 2008 12:30:16 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Fri, 26 Dec 2008 12:40:21 GMT]]></title><description><![CDATA[<p>Bring bitte mal ein lauffähiges Beispiel, dass den Fehler immernoch enthält.</p>
<p>Mir ist hier zu viel unklar, um wirklich etwas sagen zu können. (Was ist DS? Wo kommt der Speicher her usw. )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635746</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 26 Dec 2008 12:40:21 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Fri, 26 Dec 2008 14:49:51 GMT]]></title><description><![CDATA[<p>So, jetzt hier der Code ein bißchen vollständiger. Da das Programm sehr groß ist, hab ich viel weggelassen, mußte auch einiges umbenennen, ich hoffe, mir ist dabei kein Fehler unterlaufen.</p>
<pre><code class="language-cpp">class S {
      protected:
      //Instanzvariablen:
      double  itsC;

      public:
      int     itsX, itsY;

      public:
      //Konstruktoren und Destruktoren
      S();
      S(double c, int x, int y);
      virtual ~S();

      //set- und get-methoden
      void setC(double c);
      double getC(); 
};

class W : public S {

      public:
      //Konstruktoren und Destruktoren:
      W();
      W(double c, int x, int y);
      virtual ~W()
};

class DS : public W {

      public:
      //Konstruktoren und Destruktoren:
      DS();
      DS(double c, int x, int y);
      virtual ~DS();

};

S::S(){}

S::S(double c, int x, int y){
     itsC=c;
     itsX=x;
     itsY=y;
}

S::~S(){
}

void S::setC(double c) {
     itsC=c;
}

double S::getC() {
     double test=itsC;
     return itsC;
}

W::W(){}

W::W(double c, int x, int y)
     :S(c, x, y) {
}

W::~W(){}

DS:: DS(){}  //das Leerzeichen ist nur drin, weil hier sonst ein Smilie erscheint

DS:: DS(double c, int x, int y)
     :W(c, x, y) {
}

DS::~DS(){}
</code></pre>
<p>Klassen In, De, Sh erben auch indirekt von S (dürfte aber hier nichts zur Sache tun)</p>
<pre><code class="language-cpp">class CI {
      //Instanzvariablen:
      private:
      int     itsX, itsY;

      Shr* shr;
      DShr* dShr;
      Dec* dec;
      Inc* inc;

      //Methoden:
      CI(int x, int y);
      ~CI();
};

class A {

      //Instanzvariable:
      public:
      CI* ci[xsize][ysize];

      //Methoden:
      A();
      void initA(double sh, double dS, double de, double in);

      void calculate(); 

};

CI::CI(int x, int y) {
   itsX=x;
   itsY=y;

   shr=0;
   dShr=0;
   dec=0;
   inc=0;

}

CI::~CI() {
}

A::A(){

     c_shr=0.0;
     c_dShr=0.0;
     c_dec=0.0;
     c_inc=0.0;
     n_shr=0;
     n_dShr=0;
     n_dec=0;
     n_inc=0;

     double initSh=0.18325, initDShr=0.065, initDec=0.105, initInc=0.015; 

     initA(initShr, initDShr, initDec, initInc);
}

void A::initA(double sh, double dS, double de, double in) {
     double shr_c=sh/0.8;  
     double nonshr_c =1-shr_c;
     double z;
     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {
             ci[x][y]= new CI(x,y);
             z=z01();
             if (z&lt; sh_c) ci[x][y]-&gt;shr= new Sh(0.8, x,y);
             else 
             {
                if (dS&gt;0) ci[x][y]-&gt;dShr= new DS(dS/(nonshr_c/3), x,y);
                if (in&gt;0) ci[x][y]-&gt;inc= new In(in/(nonshr_c/3), x,y);
                if (de&gt;0) ci[x][y]-&gt;dec= new De(de/(nonshr_c/3), x,y);
             }
         }
     }
}

void A::calculate() {

     c_shr=0.0;
     c_dShr=0.0;
     c_dec=0.0;
     c_inc=0.0;

     n_shr=0;
     n_dShr=0;
     n_dec=0;
     n_inc=0;

     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {

             if (ci[x][y]-&gt;shr!=0)   { c_shr+=ci[x][y]-&gt;shr-&gt;getC();         n_shr++;}
             if (ci[x][y]-&gt;dShr!=0) { double test=ci[x][y]-&gt;dShr-&gt;getC();                c_dShr+=test; n_dShr++;}
             if (ci[x][y]-&gt;inc!=0)   { c_inc+=ci[x][y]-&gt;inc-&gt;getC();      n_inc++;}
             if (ci[x][y]-&gt;dec!=0)   { c_dec+=ci[x][y]-&gt;dec-&gt;getC();      n_dec++;}

         } //end for y
     } //end for x

     c_shr/=(xsize*ysize);
     c_dShr/=(xsize*ysize);
     c_dec/=(xsize*ysize);
     c_inc/=(xsize*ysize);

}
</code></pre>
<p>in aufrufender Funktion:</p>
<pre><code class="language-cpp">a=new A();
a-&gt;calculate();
</code></pre>
<p>Der Fehler tritt also in der Methode calculate auf, wo jetzt das mit dem test steht (Zeile 99 unten) bzw. in dem entsprechenden getC (Zeile 57 oben).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635783</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Fri, 26 Dec 2008 14:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Fri, 26 Dec 2008 17:14:57 GMT]]></title><description><![CDATA[<p>Also ich finde ja, dies kommt der Definition von unlerserlichem Code schon ziemlich nahe. Schade, dass es sich auch nicht kompilieren lässt, dann hätte einem der Debugger ja schnell gesagt, was Sache ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635817</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 Dec 2008 17:14:57 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Fri, 26 Dec 2008 23:13:49 GMT]]></title><description><![CDATA[<p>Ja, ist in der Hinsicht nicht so dolle. Ist bei mir auch nicht so unleserlich. Aber ich kann nicht alles angeben hier, das würde den Rahmen sprengen. Und ich glaube auch nicht, daß die Originalbezeichnungen viel weiterhelfen würden, wenn man die Anwendung nicht kennt. Aber vielleicht helfen die Kommentare jetzt ja weiter.<br />
So, die Version jetzt müßte aber übersetzbar sein, nur ist die Originalversion bei mir an umfangreiche Ein- und Ausgabe gebunden, so daß ich sehen kann, was passiert. Das hier übersetzt zwar und läuft auch, aber ich weiß nicht, ob alles korrekt ist (würde ich die von mir zuvor beschriebene Fehlermeldung ganz unabhängig von der Benutzeroberfläche bekommen? Das Fenster mit der Standardausgabe verschwindet so schnell, daß ich nicht sehen kann, was passiert und durchsteppen geht auch nicht.)</p>
<pre><code class="language-cpp">#include &lt;stdlib.h&gt;

const int xsize=30;
const int ysize=30;

inline double z01() {return rand()/(double) RAND_MAX;}

/********************************************************
* Klasse S und Unterklassen W, Shr, DShr, Dec und Inc   *
*********************************************************/

class S {
      protected:
      //Instanzvariablen:
      double  itsC;

      public:
      int     itsX, itsY;

      public:
      //Konstruktoren und Destruktoren
      S();
      S(double c, int x, int y);
      virtual ~S();

      //set- und get-methoden
      void setC(double c);
      double getC();
};

class W : public S {

      public:
      //Konstruktoren und Destruktoren:
      W();
      W(double c, int x, int y);
      virtual ~W();
};

class DShr : public W {

      public:
      //Konstruktoren und Destruktoren:
      DShr();
      DShr(double c, int x, int y);
      virtual ~DShr();

};

class Shr : public W {

      public:
      //Konstruktoren und Destruktoren:
      Shr();
      Shr(double c, int x, int y);
      virtual ~Shr();

};

class Inc : public S {

      public:
      //Konstruktoren und Destruktoren:
      Inc();
      Inc(double c, int x, int y);
      virtual ~Inc();

};

class Dec : public S {

      public:
      //Konstruktoren und Destruktoren:
      Dec();
      Dec(double c, int x, int y);
      virtual ~Dec();

};

S::S(){}

S::S(double c, int x, int y){
     itsC=c;
     itsX=x;
     itsY=y;
}

S::~S(){
}

void S::setC(double c) {
     itsC=c;
}

double S::getC() {
     double test=itsC;
     return itsC;
}

W::W(){}

W::W(double c, int x, int y)
     :S(c, x, y) {
}

W::~W(){}

DShr::DShr(){}  

DShr::DShr(double c, int x, int y)
     :W(c, x, y) {
}

DShr::~DShr(){}

Shr::Shr(){}  

Shr::Shr(double c, int x, int y)
     :W(c, x, y) {
}

Shr::~Shr(){}

Inc::Inc(){}  

Inc::Inc(double c, int x, int y)
     :S(c, x, y) {
}

Inc::~Inc(){}

Dec::Dec(){}  

Dec::Dec(double c, int x, int y)
     :S(c, x, y) {
}

Dec::~Dec(){}

/*******************************************************************
* Klasse CI, die Pointer auf Instanzen der obigen Klassen enthält  *
*******************************************************************/

class CI {
      //Instanzvariablen:
      public:
      int     itsX, itsY;

      Shr* shr;
      DShr* dShr;
      Dec* dec;
      Inc* inc;

      //Methoden:
      CI(int x, int y);
      ~CI();
};

CI::CI(int x, int y) {
   itsX=x;
   itsY=y;

   shr=0;
   dShr=0;
   dec=0;
   inc=0;

}

CI::~CI() {
}

/***************************************************************
* Klasse A, die ein Array von CI enthält                      *
***************************************************************/

class A {

      //Instanzvariable:
      public:
      CI* ci[xsize][ysize];

      //die Anzahl der jeweiligen Instanzen im Array ci:
      int n_shr, n_dShr, n_dec, n_inc;

      //der Durchschnitt der c-Werte aller Instanzen von jeweils einer
      //der Klassen Shr, DShr, Dec und Inc, übers ganze Array:
      double c_shr, c_dShr, c_dec, c_inc;

      //Methoden:
      A();
      void initA(double sh, double dS, double de, double in);

      void calculate();

};

A::A(){

     c_shr=0.0;
     c_dShr=0.0;
     c_dec=0.0;
     c_inc=0.0;
     n_shr=0;
     n_dShr=0;
     n_dec=0;
     n_inc=0;

     double initShr=0.18325, initDShr=0.065, initDec=0.105, initInc=0.015;

     initA(initShr, initDShr, initDec, initInc);
}

// initialisiert jede Arraykomponente von ci, entweder nur mit einer 
//Instanz von &quot;Shr&quot; oder eine Arraykomponente enthält Instanzen von 
//&quot;DShr&quot;, &quot;Inc&quot; und &quot;Dec&quot; gleichzeitig. 
//Der Anteil der Arraykomponenten multipliziert mit dem c-Wert der 
//Instanz entspricht den Parametern sh, dS, de und in der Funktion.
void A::initA(double sh, double dS, double de, double in) {
     double shr_c=sh/0.8; //Anteil der Arraykomponenten mit Shr
     double nonshr_c =1-shr_c; //Anteil Arraykomponenten ohne Shr
     double z;
     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {
             ci[x][y]= new CI(x,y);
             z=z01();
             if (z&lt; shr_c) ci[x][y]-&gt;shr= new Shr(0.8, x,y);
             else
             {
                if (dS&gt;0) ci[x][y]-&gt;dShr= new DShr(dS/(nonshr_c/3), x,y);
                if (in&gt;0) ci[x][y]-&gt;inc= new Inc(in/(nonshr_c/3), x,y);
                if (de&gt;0) ci[x][y]-&gt;dec= new Dec(de/(nonshr_c/3), x,y);
             }
         }
     }
}

//berechnet die Anzahl der jeweiligen Instanzen im Array ci und 
//den durchschnittlichen c-Wert
void A::calculate() {

     c_shr=0.0;
     c_dShr=0.0;
     c_dec=0.0;
     c_inc=0.0;

     n_shr=0;
     n_dShr=0;
     n_dec=0;
     n_inc=0;

     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {

             if (ci[x][y]-&gt;shr!=0)   { c_shr+=ci[x][y]-&gt;shr-&gt;getC();         n_shr++;}
             if (ci[x][y]-&gt;dShr!=0) { double test=ci[x][y]-&gt;dShr-&gt;getC();                c_dShr+=test; n_dShr++;}
             if (ci[x][y]-&gt;inc!=0)   { c_inc+=ci[x][y]-&gt;inc-&gt;getC();      n_inc++;}
             if (ci[x][y]-&gt;dec!=0)   { c_dec+=ci[x][y]-&gt;dec-&gt;getC();      n_dec++;}

         } //end for y
     } //end for x

     c_shr/=(xsize*ysize);
     c_dShr/=(xsize*ysize);
     c_dec/=(xsize*ysize);
     c_inc/=(xsize*ysize);

}

/***************************************************************
* main                                                         *
***************************************************************/

int main(int argc, char* argv[])
{
        A* a;

        a=new A();
        a-&gt;calculate();
        return 0;
}
</code></pre>
<p>In meiner Originalversion vom Code kam die Fehlermeldung in Zeile 257 bzw. 98.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635937</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Fri, 26 Dec 2008 23:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 10:56:01 GMT]]></title><description><![CDATA[<p>Müßte ich noch irgendwas besser erklären/umbenennen, damit es für Außenstehende verständlich ist?<br />
Ich bin grad dabei, das Programm umzuschreiben für eine reproduzierbare Initialisierung des Arrays ci (im Moment ist die Initialisierung ja abhängig von einer Zufallszahl), um dann zu hoffen, dem Fehler mit dem Debugger (und Assembler?) systematisch wirklich auf die Schliche zu kommen. Aber im Grunde konnte ich es mir ja auch unsystematisch im Debugger ansehen und mir ist nichts aufgefallen. Ich weiß echt nicht weiter... Leider hab ich nicht mehr viel Zeit, da ich bis Anfang Januar noch einiges anderes an dem Programm machen muß und notfalls die alte Prg.version heranziehen und dort einige &quot;billige&quot; Implementierungen einbauen muß. Na ja, hoff ich mal, daß ich den Fehler bis heut nachmittag noch finde.<br />
Also, wenn ich noch was erklären müßte, sagt Bescheid, bin über jede Hilfe äußerst dankbar!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636048</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 10:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 11:06:02 GMT]]></title><description><![CDATA[<p>Hmm. Also ich kann das kompilieren und ohne Fehler laufen lassen.</p>
<p>Was hast du für einen Compiler? - Ev. hast du etwas an den Einstellungen falsch eingestellt.</p>
<p>Ich habe VC++ Express Edition. Kannst es ja einmal mit dem probieren.<br />
<a href="http://www.microsoft.com/germany/Express/" rel="nofollow">http://www.microsoft.com/germany/Express/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636053</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 11:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 11:24:04 GMT]]></title><description><![CDATA[<p>Ich habe den Borland Builder 5. Das ganze Programm mit nem anderen Compiler zu testen geht nicht so einfach, da eine umfangreiche GUI dranhängt, die BCB-spezifisch ist.<br />
An was für Einstellungen könnte ich denn was ändern? Bevor ich einige umfangreiche Änderungen an den Datenstrukturen meiner Klassen gemacht habe, lief es ja mit den Einstellungen... Andererseits hatte ich neulich auch mal einen absolut unerklärlichen Fehler, hab den Code so geändert, daß er alles neu übersetzen mußte, und dann ging es (auch als ich den Code dann zurückgeändert habe). So ganz logisch find ich das alles nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636065</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 11:24:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 11:35:09 GMT]]></title><description><![CDATA[<p>Also, bei mir, in meinem Gesamtprogramm, hängt es immer noch. Ich weiß nicht, ob ich was wesentliches weggelassen hab hier, aber wüßte nicht, was...</p>
<p>Ich hab zu Testzwecken in mein Programm A::initA mal abgespeckt eingebaut (das, was im zuletzt geposteten Code in Zeile 218 anfängt):</p>
<pre><code class="language-cpp">void A::initA(double sh, double dS, double de, double in) {

     for (int x=0; x&lt;xsize; x++) {
         for (int y=0; y&lt;ysize; y++) {
             ci[x][y]= new CI(x,y);

                 ci[x][y]-&gt;dShr= new DShr(0.2, x,y);
                 ci[x][y]-&gt;inc= new Inc(0.2, x,y);
                 ci[x][y]-&gt;dec= new Dec(0.2, x,y);

         }
     }
}
</code></pre>
<p>so daß jede Arraykomponente gleich aufgebaut ist (die Parameter sind da nun überflüssig). Wenn ich mich da durchsteppe im Debugger, müßte der Fehler ja schon beim ersten Arrayelement in &quot;calculate&quot; auftreten, tut es aber nicht. Erst so ca. beim 10. Mal. Das ist doch völlig unlogisch, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636069</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 11:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 12:06:05 GMT]]></title><description><![CDATA[<p>Hmm. Sehr verzwackt. <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>
<p>Also das klingt für mich so, dass der Fehler nicht wirklich in diesem Code abschnitt liegt. Es kann sein, dass du z.B einen ungültigen Zeiger hast, der nicht auf 0 gesetzt wurde und dann irgendwo immernoch benutzt. Dann können solche Fehler auftreten, die völlig unlogisch erscheinen, weil sie nie da zuschlagen, wo der Fehler wirklich liegt.<br />
Also mein Tipp:<br />
Schau dir alle Zeiger und Speicher an, den du aus dem Freispeicher holst und dann musst du alle abhängigkeiten vor Augen führen und verhindern, dass irgendwo ein ungültiger Zeiger benutzt wird.</p>
<p>Das ist das, was mir einfällt.</p>
<p>Ansonsten musst du halt einmal alles Schritt für Schritt auskommentieren, bis der Fehler nicht mehr kommt. Allerdings bin ich eigentlich sehr davon überzogen, dass es ein Fehler mit einem Zeiger ist. (Kannst sonst ja auch einmal mit smart Pointern probieren, da sollten solche Fehler dann auch nicht mehr auftreten.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636079</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 12:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 13:08:50 GMT]]></title><description><![CDATA[<p>Erstmal vielen Dank! Die Feststellung mit den Zeigern schränkt das Problem ja schon mal ein.</p>
<p>Allerdings ist das ne echte Hiobsbotschaft für mich. Im Grunde hab ich sowas die ganze Zeit befürchtet (auch bei dem seltsamen Fehler, der dann plötzlich verschwunden war, nachdem alles neu übersetzt wurde - bzw. da haben wir gedacht, daß irgendwelcher Speicher (Arrays) durch andere Programmteile unabsichtlich überschrieben wird).<br />
Problem ist, daß ich den Code einer Kollegin verwende, und ich hab keine Ahnung, ob der Fehler bei ihr oder bei mir liegt. Sowohl ihr als auch mein Code ist schon recht umfangreich und bei ihrem Programm kenn ich mich auch gar nicht aus.<br />
Im Grunde kann ich zwar die vorige Programmversion wieder verwenden und da eine sehr einfache Lösung einbauen, nur im Grunde bewahrt mich das nicht davor, daß so ein Fehler wieder auftaucht, sowie ich irgendwas an dem Code ändere (wenn ich es richtig mitbekommen habe). Ich könnte grad nur fluchen, da meine Diss. darauf aufbaut, aber das Programm nur Mittel zum Zweck ist und eh schon alles sch*** läuft...</p>
<p>Aber jetzt doch nochmal zum Verständnis:<br />
das Problem tritt aber dann doch nur auf, wenn ich einen Zeiger nicht auf 0 setze und doch noch verwende?<br />
Für meinen Teil (und eigentlich müßte das auf meine Kollegin auch zutreffen) bin ich aber noch in der Initialisierungsphase wenn der Fehler auftritt. Da ist es ja eigentlich noch nicht so, daß ein Zeiger nicht mehr benutzt wird, deswegen kann ich ja eigentlich auch keinen vergessen haben.</p>
<p>Und entspricht es Eurer Erfahrung, daß so ein Zeigerfehler in einem Programm sein kann, aber sich lange nicht äußert? Also im Prinzip könnte es schon so sein, daß der Fehler im Code meiner Kollegin ist, die ihren Code alleine zwar viel getestet hat, daß er sich aber erst äußert, wenn von mir irgendwelcher Code dazukommt?</p>
<p>Sorry fürs lamentieren, aber ich bin grad verzweifelt und ratlos, in welcher Richtung ich weitermachen soll. Vielleicht doch mal unser beider Code durchforsten, vielleicht ist in der Initialierung ja noch gar nicht soviel fragwürdiges...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636113</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 13:08:50 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 13:27:46 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber jetzt doch nochmal zum Verständnis:<br />
das Problem tritt aber dann doch nur auf, wenn ich einen Zeiger nicht auf 0 setze und doch noch verwende?</p>
</blockquote>
<p>Grundsätzlich ja. Aber könnte theoretisch auch sein,dass du ausserhalb von irgendwelchen Grenzen zugreifst und dann kann das auch passieren.<br />
Im übrigen habe ich in deinem Code wirklich kein einziges delete gesehen. Was mich ansich schon einmal ein wenig beunruhigt.</p>
<blockquote>
<p>Und entspricht es Eurer Erfahrung, daß so ein Zeigerfehler in einem Programm sein kann, aber sich lange nicht äußert? Also im Prinzip könnte es schon so sein, daß der Fehler im Code meiner Kollegin ist, die ihren Code alleine zwar viel getestet hat, daß er sich aber erst äußert, wenn von mir irgendwelcher Code dazukommt?</p>
</blockquote>
<p>Ohh ja. Das ist ja gerade das fiese daran. Das Verhalten ist undefiniert. Und somit kann alles passieren. Und das es durchaus so aussieht, als ob es funktioniert, ist gar nicht einmal so ungewöhnlich. Wenn es eine sicher einen Laufzeitfehler auslöst, dann hätte ich mir auch schon etliche Debug Stunden sparen können. (Das kenn wohl jeder).</p>
<p>Was helfen könnte, wäre sicher auch noch die Initialisierungsliste zu benutzen und alle Zeiger auf 0 zu setzen. Dann musst du ihnen vor der Benutzung einen Wert zuweisen und es kann nicht sein, dass es zufälligerweise doch funktioniert..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636118</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 13:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 14:46:33 GMT]]></title><description><![CDATA[<p>Hi drakon,</p>
<p>erstmal wieder vielen Dank. Bin ja froh, wenn ich das Problem umkreisen kann.</p>
<p>zu den fehlenden deletes in meinem Code: Stimmt, steht auch noch auf meiner ToDo-Liste. Also, normalerweise werden die Pointerobjekte der Arrayelemente (also dshr, inc usw.) teilweise im weiteren Programmverlauf abhängig von irgendwelchen Bedingungen gelöscht (da ist es auch schon drin, aber hab jetzt nicht alles gepostet), das Array ci mit den übrigen Arrayelementen und a bleiben bis zum Programmende bestehen, aber die muß ich da auch noch löschen.</p>
<blockquote>
<p>Aber könnte theoretisch auch sein,dass du ausserhalb von irgendwelchen Grenzen zugreifst und dann kann das auch passieren.</p>
</blockquote>
<p>Was meinst Du da? Inwiefern darauf zugreifen?</p>
<blockquote>
<p>Was helfen könnte, wäre sicher auch noch die Initialisierungsliste zu benutzen</p>
</blockquote>
<p>Was ist eine Initialisierungsliste?</p>
<p>Na ja, ich hab jetzt mal die Initialisierung meiner Kollegin als Ganzes auskommentiert, und jetzt klappt es (bzw. der Fehler tritt dann später auf, weil auf irgendwas zugegriffen werden soll, was halt noch nicht initialisert ist). Das spricht ja eigentlich schon dafür, daß es am Code meiner Kollegin liegt, oder? Puh, nur deren Initialisierung ist echt umfangreich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636127</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 14:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 14:47:31 GMT]]></title><description><![CDATA[<blockquote>
<p>Was helfen könnte, wäre sicher auch noch die Initialisierungsliste zu benutzen und alle Zeiger auf 0 zu setzen. Dann musst du ihnen vor der Benutzung einen Wert zuweisen und es kann nicht sein, dass es zufälligerweise doch funktioniert..</p>
</blockquote>
<p>Ach so, Du meinst es so herum, daß ein Pointer deklariert wurde, aber NOCH einen undefinierten Wert besitzt. Und der dann verwendet wird, obwohl er noch nicht initialisiert wurde? Dann müßte ich den Code auf alle Pointer durchforsten (Suche nach &quot;*&quot;) und diese mit 0 initialisieren.</p>
<p>Ich dachte, daß du meinst, daß ein Pointer verwendet wurde, aber nach der Benutzung nicht auf 0 zurückgesetzt wurde, so daß man evtl. auf Werte zurückgreift, die nicht mehr wirklich gültig sind (ist ja auch möglich, aber zumindest wird dabei nichts soooo unplausibles rauskommen oder ist unwahrscheinlicher).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636142</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 14:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 14:47:10 GMT]]></title><description><![CDATA[<p>Nun ja. Deletes sollten eigentlich immer in direktem Zusammenhang mit den jeweiligen new's sein. Da du ansonsten im Falle von z.B einer Exception ziemlich sicher Speicherlecks bekommst. Ich würde euch dringend anraten Smart Pointer zu benutzen.<br />
<a href="http://www.boost.org/doc/libs/1_37_0/libs/smart_ptr/smart_ptr.htm" rel="nofollow">http://www.boost.org/doc/libs/1_37_0/libs/smart_ptr/smart_ptr.htm</a></p>
<p>Naja. Du hast ja Arrays und wenn du nun ausserhalb von gültigem Speicher zugreist, kann ein solcher Fehler auch vorkommen. (Auch wenn die Boundchecks stimmen, kann es sein, dass gar kein Speicher angefordert wurde und dann sonst wo zugegriffen wird).</p>
<p>Initialisierungsliste ist die einzige Möglichkeit eine (nicht-statische) Variable innerhalb einer Klasse zu initialisieren.</p>
<pre><code class="language-cpp">class foo
{
 foo ()
 :        //Anfang einer Initialisierungsliste
 i ( 2 ), // jede Member mit einem Startwert füllen
 pi ( 0 ), // Zeiger am besten auf 0
 ci ( 42 ) //einzige möglichkeit einen const Wert zu initialisieren
 {
  i = 5; // das hier ist niemals eine initialisierung, sonder immer eine Zuweisung
  ci = 993; // niemals möglich, da eine konstante ihren Wert bei der Initialisierung bekommt
 }

 int i;
 int* pi;
 const int ci;
};
</code></pre>
<p>Naja. Ich kann jetzt eigentlich nicht mehr viel machen, ausser zu sagen, dass du das schon noch mit ein wenig Geduld hinbringen kannst. Freunde dich mit deinem Debugger an und geniese die paar Stunden Debugging Sessions und dann das, was am wichtigsten ist. Lern im nachhinein aus deinen Fehlern! <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/1636144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636144</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 14:47:10 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 15:17:02 GMT]]></title><description><![CDATA[<p>Tja, das mit der Geduld ist so ne Sache. Wenn man nicht irgendwelchen Zwängen von außen unterliegen würde... Na ja, mal sehen, wie ich den besten Kompromiß finde... (auch das mit den SmartPointern: hört sich ganz gut an, aber bis Januar muß es erstmal einfach nur irgendwie funktionieren, und einiges mehr)</p>
<p>Ok, mit dem direkten delete einbauen mach ich es in Zukunft anders. Aber in dem Fall müßte es doch wirklich am Code meiner Kollegin liegen, oder kann man das so definitiv auch nicht sagen?</p>
<blockquote>
<p>Naja. Du hast ja Arrays und wenn du nun ausserhalb von gültigem Speicher zugreist, kann ein solcher Fehler auch vorkommen. (Auch wenn die Boundchecks stimmen, kann es sein, dass gar kein Speicher angefordert wurde und dann sonst wo zugegriffen wird).</p>
</blockquote>
<p>Wie kann das gehen? Wenn ich ein Array deklariere, wird doch automatisch Speicher dafür angefordert?! Und wenn ich es nicht deklariere, kann ich es auch nicht verwenden?!</p>
<p>Aber diese Möglichkeit als Fehlerquelle gibt es ja auch noch?! :</p>
<blockquote>
<p>Ich dachte, daß du meinst, daß ein Pointer verwendet wurde, aber nach der Benutzung nicht auf 0 zurückgesetzt wurde, so daß man evtl. auf Werte zurückgreift, die nicht mehr wirklich gültig sind</p>
</blockquote>
<p>Jedenfalls vielen Dank nochmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636154</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 15:17:02 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 15:30:51 GMT]]></title><description><![CDATA[<p>susie schrieb:</p>
<blockquote>
<p>Wie kann das gehen? Wenn ich ein Array deklariere, wird doch automatisch Speicher dafür angefordert?! Und wenn ich es nicht deklariere, kann ich es auch nicht verwenden?!</p>
</blockquote>
<pre><code class="language-cpp">char myArray[20];
myArray[200] = 34;

// Oder
char* p = new char[20];
p[30] = 3;

delete[] p;
</code></pre>
<p>Das ist gültiges C++ mit gesichertem undefiniertem Verhalten <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="😉"
    /><br />
Also ein standard konformer Kompiler wird das kompilieren, zur Laufzeit wird aber irgendetwas seltsames oder auch nichts passieren. Es ist halt nicht definiert, was passieren wird.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636158</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 27 Dec 2008 15:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 18:03:16 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> staun, das wußt ich gar nicht, daß das geht.<br />
Na ja, im Grunde glaub ich nicht, daß das mein Problem ist, da meine Indizes immer in for-Schleifen hochgezählt werden, immer bis zur selben Grenze, aber ich werds im Hinterkopf behalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636220</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 18:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 19:06:45 GMT]]></title><description><![CDATA[<p>Doch noch ne Frage zu den Initialisierungslisten, zu der ich in den Büchern keine Antwort gefunden hab: Wenn ich das mache, muß ich dann jedes Member in dieser Liste angeben? Oder kann ich mir nur grad die Pointer raussuchen und diese mit 0 initialisieren, die restlichen Member so lassen, wie sie sind (mag in fremden Code so wenig wie möglich ändern)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636268</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 19:06:45 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 19:19:16 GMT]]></title><description><![CDATA[<p>Ja, kannst du.</p>
<p>Die ersten 2 Einträge sollten schon genügen.. <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="😉"
    /><br />
<a href="http://www.google.ch/search?q=initialisierungsliste+c%2B%2B&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:de:official&amp;client=firefox-a" rel="nofollow">http://www.google.ch/search?q=initialisierungsliste+c%2B%2B&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1e9-1f1ea.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--germany"
      title=":de:"
      alt="🇩🇪"
    />official&amp;client=firefox-a</a></p>
<p>Grundsätzlich sollten aber alle Member initialisiert werden, um Probleme zu vermeiden. Aber besser die Zeiger, als gar nichts. <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/1636271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636271</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 19:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 20:20:37 GMT]]></title><description><![CDATA[<p>Hm, weit bin ich damit nicht gekommen, die wenigsten Pointer sind Member einer Klasse.<br />
Außerdem ist eine neue Frage aufgetaucht: Wenn ich ein Array von Pointern hab, wie kann ich das denn initialisieren? (außer in einer Schleife?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636291</guid><dc:creator><![CDATA[susie]]></dc:creator><pubDate>Sat, 27 Dec 2008 20:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;ungültige Gleitkommaoperation&amp;quot; in Funktion, die nichts berechnet on Sat, 27 Dec 2008 20:58:24 GMT]]></title><description><![CDATA[<p>susie schrieb:</p>
<blockquote>
<p>Wenn ich ein Array von Pointern hab, wie kann ich das denn initialisieren? (außer in einer Schleife?)</p>
</blockquote>
<p>Wie alle Arrays.</p>
<p>Normalerweise kannst du die Array-Initialisierungsliste verwenden. Arrays als Member können nur mit Schleifen initialisiert werden (du kannst natürlich auch Funktionen wie <code>std::fill()</code> oder <code>std::generate()</code> verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636307</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 27 Dec 2008 20:58:24 GMT</pubDate></item></channel></rss>