<?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[Programm Aussschnit - Laufzeitfehler]]></title><description><![CDATA[<p>Hier ist ein Ausschnitt aus meinem Programm an dem ich grad schreibe, einem Finanzplaner. In folgendem Code geht es darum dass der Benutzer nach seinem Einkommen befragt wird. Ich wollte die Antworten in dem vector &quot;m_save_in&quot; Speichern, und nach jedem Schleifendurchlauf den Vektor mit vector.resize(vector.size()+1) um ein Feld erhöhen.<br />
Doch ab dem Moment wo ich versuche über einen Iterator etwas in den Vektor reinzuschreiben kommt der Laufzeitfehler.<br />
Hier mal der Code ausschnit, ich hoff irgendjemand verstehts, aber wenn ich noch mehr Code poste, wirds glaub ich nur noch verwirrender:</p>
<p>income.hpp</p>
<pre><code class="language-cpp">#ifndef _INCOME_H_
#define _INCOME_H_

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &quot;user_service.hpp&quot;
#include &quot;networking_data_types.hpp&quot;

class income
{
    public:
    income();
    void detail_interview_income(); //Frägt die Details ab. 1.Betreff, 2.Preis, 3.Datum

    private:
    user_service ser_income; //Eigenes &quot;user_service&quot; Objekt, über welches die benötigten Methoden aufgerufen werden können
    std::vector&lt;finance&gt; m_save_in; //Zuständig zum speichern der Details. Spezieller Datentyp (siehe netw._data_types)
    std::vector&lt;finance&gt;::iterator iter;
    datum date;
};

#endif // _INCOME_H_
</code></pre>
<p>//LAUFZEITFEHLER ZEILE 19! Nach Enter Bestätigung von cin<br />
income.cpp</p>
<pre><code class="language-cpp">#include &quot;income.hpp&quot;
#include &quot;imp_fkt.hpp&quot;

//Konstruktor
income::income()
:iter(m_save_in.begin())
{

}
//Fasst die benötigten Methoden aus &quot;user_service&quot; zusammen
//Frägt den User sozusagen über die details aus (interview)
void income::detail_interview_income()
{

     do
     {
         m_save_in.resize(m_save_in.size()+1);
         imp_fkt::clean_buffer();
         iter-&gt;money_re=ser_income.cash_flow(&quot;Geldquelle: &quot;); //Frägt nach dem Betreff/Artikel //LAUFZEITFEHLER Win-ERROR
         iter-&gt;money_amount=ser_income.amount(&quot;Geldsumme: &quot;); //Frägt nach dem Preis
         imp_fkt::clean_buffer(); //Leer Buffer...sonst Probleme mit &quot;goon_option()&quot;
         ++iter;
     }
     while(ser_income.goon_option()); //Weiter Artiekl reinschreiben, oder Datum -&gt; und abschließen (siehe user_service)

     date=ser_income.date(); //Nach Datum fragen

}
</code></pre>
<p>//unwichig nur nebensächlich<br />
networking_data_types.hpp</p>
<pre><code class="language-cpp">struct datum
{
    unsigned long year;
    unsigned long month;
    unsigned long day;
};

struct finance
{
    std::string money_re; 
    unsigned long money_amount;
};
</code></pre>
<p>Vll. hab ich ja Glück und irgendjemand blickt durch. Vll. is für einen standard Programmierer der dass schon 10 Jahre macht ja ganz normal lesbar wie aus nem Buch, kp <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>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/212552/programm-aussschnit-laufzeitfehler</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 20:28:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212552.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 May 2008 18:00:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm Aussschnit - Laufzeitfehler on Wed, 07 May 2008 18:00:10 GMT]]></title><description><![CDATA[<p>Hier ist ein Ausschnitt aus meinem Programm an dem ich grad schreibe, einem Finanzplaner. In folgendem Code geht es darum dass der Benutzer nach seinem Einkommen befragt wird. Ich wollte die Antworten in dem vector &quot;m_save_in&quot; Speichern, und nach jedem Schleifendurchlauf den Vektor mit vector.resize(vector.size()+1) um ein Feld erhöhen.<br />
Doch ab dem Moment wo ich versuche über einen Iterator etwas in den Vektor reinzuschreiben kommt der Laufzeitfehler.<br />
Hier mal der Code ausschnit, ich hoff irgendjemand verstehts, aber wenn ich noch mehr Code poste, wirds glaub ich nur noch verwirrender:</p>
<p>income.hpp</p>
<pre><code class="language-cpp">#ifndef _INCOME_H_
#define _INCOME_H_

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &quot;user_service.hpp&quot;
#include &quot;networking_data_types.hpp&quot;

class income
{
    public:
    income();
    void detail_interview_income(); //Frägt die Details ab. 1.Betreff, 2.Preis, 3.Datum

    private:
    user_service ser_income; //Eigenes &quot;user_service&quot; Objekt, über welches die benötigten Methoden aufgerufen werden können
    std::vector&lt;finance&gt; m_save_in; //Zuständig zum speichern der Details. Spezieller Datentyp (siehe netw._data_types)
    std::vector&lt;finance&gt;::iterator iter;
    datum date;
};

#endif // _INCOME_H_
</code></pre>
<p>//LAUFZEITFEHLER ZEILE 19! Nach Enter Bestätigung von cin<br />
income.cpp</p>
<pre><code class="language-cpp">#include &quot;income.hpp&quot;
#include &quot;imp_fkt.hpp&quot;

//Konstruktor
income::income()
:iter(m_save_in.begin())
{

}
//Fasst die benötigten Methoden aus &quot;user_service&quot; zusammen
//Frägt den User sozusagen über die details aus (interview)
void income::detail_interview_income()
{

     do
     {
         m_save_in.resize(m_save_in.size()+1);
         imp_fkt::clean_buffer();
         iter-&gt;money_re=ser_income.cash_flow(&quot;Geldquelle: &quot;); //Frägt nach dem Betreff/Artikel //LAUFZEITFEHLER Win-ERROR
         iter-&gt;money_amount=ser_income.amount(&quot;Geldsumme: &quot;); //Frägt nach dem Preis
         imp_fkt::clean_buffer(); //Leer Buffer...sonst Probleme mit &quot;goon_option()&quot;
         ++iter;
     }
     while(ser_income.goon_option()); //Weiter Artiekl reinschreiben, oder Datum -&gt; und abschließen (siehe user_service)

     date=ser_income.date(); //Nach Datum fragen

}
</code></pre>
<p>//unwichig nur nebensächlich<br />
networking_data_types.hpp</p>
<pre><code class="language-cpp">struct datum
{
    unsigned long year;
    unsigned long month;
    unsigned long day;
};

struct finance
{
    std::string money_re; 
    unsigned long money_amount;
};
</code></pre>
<p>Vll. hab ich ja Glück und irgendjemand blickt durch. Vll. is für einen standard Programmierer der dass schon 10 Jahre macht ja ganz normal lesbar wie aus nem Buch, kp <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>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505061</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 07 May 2008 18:00:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programm Aussschnit - Laufzeitfehler on Wed, 07 May 2008 18:04:08 GMT]]></title><description><![CDATA[<p>Der Aufruf von resize kann Iteratoren ungültig machen.</p>
<p>Warum benutzt du nicht einfach vector::push_back und vector::back?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505064</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 07 May 2008 18:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to Programm Aussschnit - Laufzeitfehler on Wed, 07 May 2008 18:13:42 GMT]]></title><description><![CDATA[<p>Dass <code>resize()</code> die Iteratoren ungültig macht, ist mir nicht bekannt, es kann aber durchaus sein.<br />
Du hast den Iterator nur im Konstruktor initialisiert. Falls die income::detail_interview_income() mehrmals aufgerufen wird, überschreitest du mit dem Iterator den Speicherbereich.<br />
Was macht die Funktion <code>goon_back()</code> ? Arbeitet sie fehlerfrei?</p>
<p>Wenn du nur Elemente anhängen willst, benutze die Funktion <code>push_back(..)</code> . Da kannst du dir deine vielen Abfragen und Iteratoren sparen <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 />
Mit <code>back()</code> erhältst du das letzte Element des Vektors.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505068</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 07 May 2008 18:13:42 GMT</pubDate></item><item><title><![CDATA[Reply to Programm Aussschnit - Laufzeitfehler on Wed, 07 May 2008 18:15:19 GMT]]></title><description><![CDATA[<p>Mh, weil ich weiß net so genau wie ich da push_back aufrufe, weil des is ja kein normaler vektor, sondern der hat den Typ &quot;finance&quot;...<br />
Ich wollt eigentlich schon push_back nehmen, wusst aber net wies geht.<br />
Wie ruf ich da dann push_back auf? Weil bei push_back muss man ja imemr irgendwie nen Wert angeben, ich will aber nur ein Feld weiter und no gar keinen Wert eingeben, weil ich hab ja erst alle Werte nach einem Schelfiendruchlauf...<br />
Kann mir jemand folgen?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505069</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 07 May 2008 18:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to Programm Aussschnit - Laufzeitfehler on Wed, 07 May 2008 18:37:50 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Mh, weil ich weiß net so genau wie ich da push_back aufrufe, weil des is ja kein normaler vektor, sondern der hat den Typ &quot;finance&quot;..</p>
</blockquote>
<p>Das spielt keine Rolle, <code>std::vector&lt;&gt;</code> als Template kann beliebige Typen annehmen.</p>
<p>Stromberg schrieb:</p>
<blockquote>
<pre><code class="language-cpp">do
     {
         // ..
         iter-&gt;money_re=ser_income.cash_flow(&quot;Geldquelle: &quot;); //Frägt nach dem Betreff/Artikel //LAUFZEITFEHLER Win-ERROR
         iter-&gt;money_amount=ser_income.amount(&quot;Geldsumme: &quot;); //Frägt nach dem Preis
         // ...
     } //...
</code></pre>
</blockquote>
<p>Hier hast du aber den neuen Elementen auch bereits einen Wert zugewiesen, bzw. deren Member verändert. Ich denke, bei <code>resize()</code> werden neue Elemente automatisch mit dem Standardkonstruktor des jeweiligen Typs initialisiert.</p>
<p>Wenn du im Vornherein schon weisst, wie gross der neue, vergrösserte Vektor sein soll, kannst du das ja mit <code>resize()</code> erledigen. Und sonst kannst du mit <code>push_back()</code> neue Elemente einzeln anhängen (die notfalls auch mit dem Standardkonstruktor initialisiert werden). Du kannst deren Werte ja später noch abändern oder mit <code>back()</code> auf das gerade angehängte letzte Element zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505085</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 07 May 2008 18:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to Programm Aussschnit - Laufzeitfehler on Wed, 07 May 2008 19:28:51 GMT]]></title><description><![CDATA[<p>Ah, okay ich habs dann so gemacht:</p>
<p>networking_data_types.hpp</p>
<pre><code class="language-cpp">struct finance
{
    finance(std::string re, unsigned long amount);
    std::string money_re; //re = engl. Betreff
    unsigned long money_amount;
};
</code></pre>
<p>networking_data_types.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;networking_data_types.hpp&quot;
using namespace std;

finance::finance(std::string re, unsigned long amount)
:money_re(re),money_amount(amount)
{

}
</code></pre>
<p>income.hpp</p>
<pre><code class="language-cpp">#ifndef _INCOME_H_
#define _INCOME_H_

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &quot;user_service.hpp&quot;
#include &quot;networking_data_types.hpp&quot;

class income
{
    public:
    void detail_interview_income(); //Frägt die Details ab. 1.Betreff, 2.Preis, 3.Datum

    private:
    user_service ser_income; //Eigenes &quot;user_service&quot; Objekt, über welches die benötigten Methoden aufgerufen werden können
    std::vector&lt;finance&gt; m_save_in; //Zuständig zum speichern der Details. Spezieller Datentyp (siehe new_data_types)
    datum date;
};

#endif // _INCOME_H_
</code></pre>
<p>income.cpp</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &quot;income.hpp&quot;
#include &quot;imp_fkt.hpp&quot;
using namespace std;

//Fasst die benötigten Methoden aus &quot;user_service&quot; zusammen
//Frägt den User sozusagen über die details aus (interview)
void income::detail_interview_income()
{

     do
     {
         string re;
         unsigned long amount;

         imp_fkt::clean_buffer();
         re=ser_income.cash_flow(&quot;Geldquelle: &quot;); //Frägt nach dem Betreff/Artikel //LAUFZEITFEHLER Win-ERROR
         amount=ser_income.amount(&quot;Geldsumme: &quot;); //Frägt nach dem Preis
         imp_fkt::clean_buffer(); //Leer Buffer...sonst Probleme mit &quot;goon_option()&quot;
         m_save_in.push_back(finance(re,amount));
     }
     while(ser_income.goon_option()); //Weiter Artiekl reinschreiben, oder Datum -&gt; und abschließen (siehe user_service)

     date=ser_income.date(); //Nach Datum fragen

}
</code></pre>
<p>So hasts du doch gemeint oder?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505127</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 07 May 2008 19:28:51 GMT</pubDate></item></channel></rss>