<?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[This application has requested the Runtime.....]]></title><description><![CDATA[<p>Kann mir jemand sagen was das bedeutet?<br />
Wenn ich mein Programm bei mir in code::blocks compiliere dann kommt nach kurzer Zeit immer (nach zwei cins):<br />
This application has requested the Runtime to terminate it in an unusual way.<br />
Please contact the application's support team for more information.<br />
Aber das steht halt in der Eingabeaufforderung drin und dann wird das Programm beendet, bzw. es ist halt noch dieses waitkey von der IDE da.<br />
Wenn ich ganz normal die kompilierte Exe ausführe dann beender es sofort (is ja klar weil ich den Error so schnell nicht sehen kann da ja das waitkey von der IDE nicht mehr dabei ist.)<br />
So aber warum passiert das jetzt? Ich hab weder irgendwelche Zeiger oder ähnliches die auf Speicher vom Betriesystem zugreifen, und somit das Programm beenden könnten drin. An was kann das den liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169080/this-application-has-requested-the-runtime</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 17:28:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169080.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Jan 2007 18:08:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 18:08:06 GMT]]></title><description><![CDATA[<p>Kann mir jemand sagen was das bedeutet?<br />
Wenn ich mein Programm bei mir in code::blocks compiliere dann kommt nach kurzer Zeit immer (nach zwei cins):<br />
This application has requested the Runtime to terminate it in an unusual way.<br />
Please contact the application's support team for more information.<br />
Aber das steht halt in der Eingabeaufforderung drin und dann wird das Programm beendet, bzw. es ist halt noch dieses waitkey von der IDE da.<br />
Wenn ich ganz normal die kompilierte Exe ausführe dann beender es sofort (is ja klar weil ich den Error so schnell nicht sehen kann da ja das waitkey von der IDE nicht mehr dabei ist.)<br />
So aber warum passiert das jetzt? Ich hab weder irgendwelche Zeiger oder ähnliches die auf Speicher vom Betriesystem zugreifen, und somit das Programm beenden könnten drin. An was kann das den liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200717</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 01 Jan 2007 18:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 18:35:07 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>du hast einen Fehler in deinem Code.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200746</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 01 Jan 2007 18:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 18:45:41 GMT]]></title><description><![CDATA[<p>Hm aber warum wird der Error dann nicht vor dem compilieren angezeigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200752</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 01 Jan 2007 18:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 18:47:12 GMT]]></title><description><![CDATA[<p>Weil es ein Laufzeitfehler ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200754</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Mon, 01 Jan 2007 18:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 18:49:42 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Hm aber warum wird der Error dann nicht vor dem compilieren angezeigt?</p>
</blockquote>
<p>Dummerweise gibts Fehler die der Compiler nicht erkennen kann.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200756</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Mon, 01 Jan 2007 18:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 18:56:34 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>oder um es anders auszudrücken : ohne den relevanten Code mitsamt kurzer Beschreibung können wir dir nicht helfen, weil wir keine Hellseher sind.</p>
<p>Man braucht keine Pointer für Speicherfehler, da reicht schon ein Zugriff auf ein Array außerhalb desen Dimension aus.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200760</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 01 Jan 2007 18:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 19:09:33 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Ich hab weder irgendwelche Zeiger oder ähnliches die auf Speicher vom Betriesystem zugreifen, und somit das Programm beenden könnten drin. An was kann das den liegen?</p>
</blockquote>
<p><code>throw</code> ?</p>
<p>Ohne Code wird man dir nicht viel weiter helfen können. Kannst ja auch mal mit dem Debugger durchsteppen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200768</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Mon, 01 Jan 2007 19:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 19:28:25 GMT]]></title><description><![CDATA[<p>Mh ja ich wollt nicht den ganzen Code reinmachen weil der is vll. zu lang. (Weiß nicht ob das erlaubt ist???)<br />
Okay nehmts mir nicht böse, ich poste den mal und wenn es stört dann kann den ja ein Moderator wieder weg machen.</p>
<pre><code class="language-cpp">//main
#include &quot;Bot_functions.h&quot;
#include &quot;Initial.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

int main()
{
    //initialisiert die string vetoren
    GRUSS();
    STANDARDS();

    //die Startzahl für den Zufall ist time(0) und somit immer unterschiedlich
    srand(time(0));
    //hier wird der Zufall noch mal durchgemischt
    rand();

    string temp;
    string UserText;
    bool x;

    cout &lt;&lt; &quot;***  'Assozialer Bot' made by Andy  ***\n\n\n&quot;;

    do
    {
        if (CheckWord(temp,25)!=all_right)
        {
            cout &lt;&lt; &quot;Unter welchem Nicknamen wollen sie sich mit dem Bot unterhalten?&quot; &lt;&lt; endl;
            cout &lt;&lt; &quot;(Namen &quot; &lt;&lt; &quot;\x81&quot; &lt;&lt; &quot;ber 25 Buchstaben sind nicht erlaubt) Eingabe:&quot;;
            GetString(temp,50);
            if (CheckWord(temp,25)!=all_right)
            {
                cout &lt;&lt; &quot;\n### ERROR ###  &gt;&gt; &quot;;
                if (CheckWord(temp,25)==too_long)
                cout &lt;&lt; &quot;Der Nickname hat &quot; &lt;&lt; &quot;\x81&quot; &lt;&lt; &quot;ber 25 Buchstaben du Matschbirne.\n&quot; &lt;&lt; endl;
                else
                cout &lt;&lt; &quot;Es ist noch kein Nickname eingegeben du Vollidiot.\n&quot; &lt;&lt; endl;
            }

        }

        if (CheckWord(temp,25)==all_right)
        {
            if (x!=true)
            {
                cout &lt;&lt; &quot;\n\n\n            **----------- Now speaking to Andy's Bot -----------** \n\n\n&quot;;
                BotSay(gruss);  //### warum kommen hier auch vector strings von standard obwohl gruss angegeben ist? Es soll ein Satz durch Zufall
                                //von dem vector string gruss ausgegeben werden manchmal gibt er aber auch Sätze von vector string standard aus.
                                //das verstehe ich nicht wie der auf den vector string standards kommt. ### 
                x=true;
            }
            UserSay(temp,UserText); //### Nach dem hier wird abgebrochen ###
            BotSay(standards);
        }

    }while(0);

	return 0;
}
</code></pre>
<pre><code class="language-cpp">//Bot_functions.cpp
include &quot;Bot_functions.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstring&gt;
#include &lt;cctype&gt;
#include &lt;algorithm&gt;
#include &lt;stdlib.h&gt;
#include &lt;vector&gt;
using namespace std;

//ganz normal GetString Funktion
void GetString(string &amp;s,int maxlength)
{
    char *temp=new char[maxlength+1];
    cin.getline(temp,maxlength);
    s=temp;
    delete []temp;
}

//ganz am anfang beim Programm Start schaut diese Funktion wie lange der Nickname ist. Wemm er über 25 Buchstaben
//ist (kann man mit dem Parameter maxlength bestimmen, wie lange der Nickname sein soll) bzw. wenn noch gar nichts
//eingegeben wurde bzw. wenn ein Nick mit richtiger Buchstabenlänge eingegeben wurde gibt die Funktion entweder
//too_long,no_characters oder all_right
ERROR CheckWord(const string &amp;s,int maxlength)
{
    if (s.size()&gt;maxlength)  //wenn string größer als die höchstlänge dann 1
    {
        return too_long;
    }
    else if (s.size()==0)    //wenn im string noch gar nichts drin steht 2
    {
        return no_characters;
    }
    else if (s.size()&lt;=maxlength)   //wenn string die höchstlänge nicht überschreitet und was drin steht 3
    {
        return all_right;
    }
}

//gibt eine Zufallszahl (nur ganzzahl) im Intervall von Parameter a bis Parameter b. Parameter b kann man weg
//lassen und b nimmt als Standard die höchstgröße von long signed (vorzeichenbehaftet) an

long rnd(long a,long b)
{
     return (rand() % (b-a+1)) + a;
}

//hier kann man einen vector string angeben und die Funktion gibt mit Hilfe der Funktion rnd (Zufall) ein Feld von
// dem vector string aus. (natürlich nur wenn er mehrer Felder hat, wenn nicht dann ist es halt immer der gleiche)
vector&lt;string&gt; converse(const vector&lt;string&gt; v)
{
    vector&lt;string&gt; temp;
    int Random=rnd(0,v.size());
    temp.push_back(v.at(Random));
    return temp;
}

//hier gibt man einen vector an und die Funktion schreibt durch zufall ein Feld des vectors mit cout in den
//Kommandointerpreten und schreibt noch zusätzlich &quot;Bot: &quot; als Postfix (vorangestellt) hin. Die Funktion nimmt sich
//converse() zur Hilfe
void BotSay(const vector&lt;string&gt; v)
{
    cout &lt;&lt; &quot;Bot: &quot; &lt;&lt; converse(v).at(0) &lt;&lt; endl;
}

//diese Funktion schreibt den Nicknamen in den Kommandointerpreten, und führt innerhalb die Funktion GetString aus
//wobei man beim 2ten Parameter einen string dafür angeben muss in welchem die Eingabe gespeichert wird.
//Parameter1 enthält den Nicknamen des Users
void UserSay(const string &amp;s,string &amp;ut)
{
    cout &lt;&lt; s &lt;&lt; &quot;: &quot;;
    GetString(ut,5000);
}
</code></pre>
<pre><code class="language-cpp">//Bot_functions.h
#ifndef BOT_FUNCTIONS_H_INCLUDED
#define BOT_FUNCTIONS_H_INCLUDED

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

enum ERROR {too_long,no_characters,all_right};

void GetString(string &amp;s,int maxlength);
ERROR CheckWord(const string &amp;s,int maxlength);
long rnd(long a=0,long b=2147483647);
vector&lt;string&gt; converse(const vector&lt;string&gt; v);
void BotSay(const vector&lt;string&gt; v);
void UserSay(const string &amp;s,string &amp;ut);

#endif // BOT_FUNCTIONS_H_INCLUDED
</code></pre>
<pre><code class="language-cpp">//Initial.h
#ifndef INITIAL_H_INCLUDED
#define INITIAL_H_INCLUDED

#include &lt;string&gt;
#include &lt;vector&gt;

std::vector&lt;std::string&gt; gruss;
std::vector&lt;std::string&gt; standards;

//Begrüßungen des Bots
void GRUSS()
{
    gruss.push_back(&quot;Hello&quot;);
    gruss.push_back(&quot;Hallo&quot;);
    gruss.push_back(&quot;Sers&quot;);
    gruss.push_back(&quot;Seeeeeees&quot;);
    gruss.push_back(&quot;Salut&quot;);
    gruss.push_back(&quot;Serv\x81s&quot;);
    gruss.push_back(&quot;Bonjour&quot;);
    gruss.push_back(&quot;Guten Tag&quot;);
    gruss.push_back(&quot;Ave&quot;);
    gruss.push_back(&quot;Sers Schneckle&quot;);
    gruss.push_back(&quot;Gr\x81\xe1 dich&quot;);
    gruss.push_back(&quot;Gr\x81\xe1 Gott&quot;);
    gruss.push_back(&quot;Na du?&quot;);
    gruss.push_back(&quot;Alles klar Herr Kommissar?&quot;);
    gruss.push_back(&quot;Was gibts?&quot;);
    gruss.push_back(&quot;Na, hast keine Freunde?&quot;);
}

//normale Standard Sätze
void STANDARDS()
{
    gruss.push_back(&quot;Schön dich zu sehen&quot;);
    gruss.push_back(&quot;Warum nervst du mich?&quot;);
    gruss.push_back(&quot;Was bistn du für einer?&quot;);
    gruss.push_back(&quot;Kein Wunder das es mit Deutschland nicht aufwärts geht. Schau dich mal an&quot;);
    gruss.push_back(&quot;Raus, mit sowas wie dir unterhalte ich mich nicht&quot;);
    gruss.push_back(&quot;Such dir Freunde und keine Bots&quot;);

}

#endif // INITIAL_H_INCLUDED
</code></pre>
<p>So das wärs. Ich hab die Stellen mit ### gekennzeichnet. Und was ich auch nicht versteh bei einer Funktion (BotSay) greift der auf den vector string standards und gruss zu. Ich will aber das er nur auf gruss zugreift, und versteh auch nicht wie der auf vector string kommt. Hab ich da was mit den vectoren falsch verstanden oder so? Die sind doch jeder für sich mit einem namen gekennzeichnet und so kann keiner irgendwie auf den anderen zugreifen oder???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200779</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 01 Jan 2007 19:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 19:37:00 GMT]]></title><description><![CDATA[<p>Der letzte gültige Index für einen Vector ist size() - 1. Das musst du bei der Ermittlung deiner Zufallszahl berücksichtigen.</p>
<p>Und die Funktion GetString kannst du einfach durch std::getline ersetzen, die kann auch direkt in einen std::string einlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200786</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 01 Jan 2007 19:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 19:39:11 GMT]]></title><description><![CDATA[<p>Na, für deinen letzten Codeabschnitt, mit gruss und standards hast du doch einen Copy-Paste-Fehler! In STANDARDS() füllst du den gruss-Vector... dabei willst du doch bestimmt den standard-Vector füllen? Naja, offensichtliche Fehler fallen am schwierigsten ins Auge. <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/1200790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200790</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 19:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 19:42:41 GMT]]></title><description><![CDATA[<p>Achja, warum machst du die Implementierung deiner beiden Funktionen in Initial.h??? Lager die mal in ein Initial.cpp aus, sonst wird das wegen Mehrfachdefinition der Funktionen noch Mecker vom Compiler geben. Und die Variablen gruss und standards gehören auch in die cpp-Datei. Sonst sind die auch mehrfach definiert, sobald der Header Initial.h irgend woanders noch inkludiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200793</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 19:42:41 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 19:54:16 GMT]]></title><description><![CDATA[<p>Achja, und du kannst auch nicht davon ausgehen, das dein Vector immer mind. ein Element hat. Das hier wäre noch ganz gut:</p>
<pre><code class="language-cpp">void BotSay(const vector&lt;string&gt;&amp; v) // v auch als by-Reference-Parameter.
{
   try
   {
      cout &lt;&lt; &quot;Bot: &quot; &lt;&lt; converse(v).at(0) &lt;&lt; endl;
   }
   catch(std::out_of_range &amp;e)
   {
      clog &lt;&lt; e.what() &lt;&lt; endl;
   }
}
</code></pre>
<p>Wenn dein Vector mal Null Elemente hat, fliegt dir das Programm wenigstens nicht um die Ohren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Eine Laufzeitfehler-Quelle weniger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200796</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 19:54:16 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 20:27:40 GMT]]></title><description><![CDATA[<p>@all<br />
Erst mal vielen Dank für eure schnelle und gute Hilfe es funktioniert jetzt alles so wie ich es mit vorgestellt habe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a><br />
Das mit der Funktion STANDARDS das ich da immer gruss.push_back(....) geschrieben habe anstatt standard.push_back(....) äh ja peinlihc peinlich für mich würde ich mal sagen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Das mit der Initial.h und der zusätzlichen Initial.cpp werde ich jetzt auch gleich noch umsetzen.<br />
Aber die BotSay funktion von dir verstehe ich nicht. Das mit dem try hab ich anfangs ja überhaupt nicht verstanden hab dann aber in meinem Büchlein im Inhaltsverzeichnis nachgeschut wo stand:<br />
try: Wird innerhalb eines try-Anweisungsblocks eine Ausnahme geworfen, so kann sie mit hinter dem try-Block definierten catch-Blöcken aufgefangen<br />
werden.<br />
Okay hab ich verstanden aber woher kommt out_of_range (is das jetzt in ner speziellen header Datei?). Und dann die Referenz e woher kommt die?<br />
Und weiter gehts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> mit clog is wohl cout gedacht? Und was bewirkt die Funktion what() und aus welcher header kommt die? Ist die ganz normale aus #include &lt;vector&gt;??<br />
Dankeschön schon mal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200820</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 01 Jan 2007 20:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 21:16:53 GMT]]></title><description><![CDATA[<p>Bzgl. try und catch. Das sind C++ Sprachfeatures, die du noch nicht kennst. Aber früher oder später stösst man da halt drauf. Es werden dir noch vieeele C++ Sachen die nächsten Monate über den Weg laufen.</p>
<p>A) du nimmst das try/catch erstmal so hin, wenn das bisher zu viel Infos sind. Oder<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="B)"
      alt="😎"
    /> du kannst <a href="http://www.kharchi.de/cppratgeber3.htm" rel="nofollow">hier</a> was über Exceptions nachlesen.</p>
<p>Da std::out_of_range aus dem std-Namespace ist, ist es aus der C++ Standardbibliothek. Alle Methoden aus der Standardlib die sich at() nennen, können ein out_of_range werfen. Im Prinzip heißt das, das der Zugriff von dir ausserhalb des Index-Bereiches war. Wenn dein Vector nur 2 Elemente enthält, und du z.B. auf das 3. Element zugreifst, wirft at() die out_of_rage-Exception. Am besten zu liest was zu den Exceptions.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200839</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 21:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 21:25:20 GMT]]></title><description><![CDATA[<p>Achja:</p>
<p>cout -&gt; Ausgabestream-Objekt für normale Textausgaben.<br />
cerr -&gt; Ausgabestream-Objekt für Fehlermeldungen.<br />
clog -&gt; Ausgabestream-Objekt für Logging-Meldungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200842</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 21:25:20 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 21:47:41 GMT]]></title><description><![CDATA[<p>So ich war wieder auf deiner Page und hab mir den Link von dir durchgearbeitet nur leider bin ich schon bei throw (3.1) stehen geblieben, warum funktioniert das den bei mir nicht.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;exception&gt;

void foo(void *p) throw (std::exception);

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

}

void foo(void *p) throw (std::exception)
{
    if( p == NULL )
        throw std::exception(&quot;Exception: p ist NULL!&quot;);

}
</code></pre>
<p>ERROR:<br />
Compiling: C:\MinGW\Andi\C++\exeptions.cpp<br />
C:\MinGW\Andi\C++\exeptions.cpp: In function <code>void foo(int*)': C:\\MinGW\\Andi\\C++\\exeptions.cpp:17: error: no matching function for call to</code>std::exception::exception(const char[23])'<br />
c:/mingw/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/exception:53: note: candidates are: std::exception::exception(const std::exception&amp;)<br />
c:/mingw/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/exception:55: note: std::exception::exception()<br />
Process terminated with status 1 (0 minutes, 0 seconds)<br />
3 errors, 0 warnings</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200851</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 01 Jan 2007 21:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 22:01:17 GMT]]></title><description><![CDATA[<p>Hem, in meinem MSVC7.1 funktioniert es. Habe aber jetzt nochmal in der MSDN-Doku und Stroustrup nachgeschaut, std::exception hat tatsächlich keinen Konstruktor der Strings entgegen nimmt. Nur davon abgeleitete Exceptions stellen einen solchen Konstruktor bereit.</p>
<p>Gut, das macht aber nichts. Dann lass einfach in Zeile 17 den String weg. Also so:</p>
<pre><code class="language-cpp">throw std::exception();
</code></pre>
<p>Werde mein Tutorial entsprechend abändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200856</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 22:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 22:42:26 GMT]]></title><description><![CDATA[<p>Was ich noch nicht so ganz verstehe wann weiß ich jetzt z.B. bei dem vector da das ich z.B. out_of_range und nicht overflow_error verwenden muss. (okay out_of_range sagt ja der Name schon ein bisschen). Aber du hast irgendwas vorhin gemeint mit alle Methoden asu der standard lib die sich at() nennen können einen out_of_range werfen. Mh ich versteh jetzt nicht ganz woher soll ich wissen wie die ganzen methoden heißen und ich versteh das auch nicht mit dem &quot;...die sich at() nennen...&quot; es können doch nicht alle Methoden den Namen at() haben??? Oder wie ist das jetzt zu verstehen.<br />
Genauso auf deiner Page da hast du ja so eine Tabelle erstellt aber mh, manche werden von Bibliotheken geworfen andere von der Sprache. z.B. bei bad_alloc steht geworfen von new is da dieses new gemeint --&gt; int a=new int; ????<br />
Äh und noch was:</p>
<pre><code class="language-cpp">void foo(void *p) throw (std::exception)
{
    if( p == NULL )
        throw std::exception();

}
</code></pre>
<p>Bei der Funktion hier, da steht als Parameter void *p. Was soll bitte void für einen Typ darstellen? Void ist bei mir &quot;nichts&quot;. Was speichert man in einem void Typ???</p>
<p>Dankeschön schon mal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200865</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 01 Jan 2007 22:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Mon, 01 Jan 2007 23:36:01 GMT]]></title><description><![CDATA[<blockquote>
<p>Was ich noch nicht so ganz verstehe wann weiß ich jetzt z.B. bei dem vector da das ich z.B. out_of_range und nicht overflow_error verwenden muss. (okay out_of_range sagt ja der Name schon ein bisschen).</p>
</blockquote>
<p>In dem man das nachliest? Es ist wichtig das man Literatur hat oder weiß wo es steht. (z.B. in meinem Tutorial <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="😉"
    /> ) Das ist wie in der Mathematik und Physik: man muß nicht alle Formeln auswendig können, man muß nur wissen, wo die Formeln zu finden sind.</p>
<p>Beim Programmieren bzw. bei der Benutzung von Bibliotheken ist das auch nicht anders. Klassen und Funktionen die man regelmäßig benutzt, hat man dann auch automatisch irgendwann auswenig gelernt. Sachen die man seltener benutzt, schlägt man halt nach. Entweder in einem Buch oder online.</p>
<p>Ich schlage meistens in meinem Büchern nach, was in meinen Büchern nicht drin steht, schlage ich in der MSDN nach, weil die natürlich umfangreicher und detailierter als ein Buch ist. Wer keines von beidem nutzen kann, kann sich mit dem kleinen aber feinen <a href="http://www.cppreference.com" rel="nofollow">http://www.cppreference.com</a> behelfen. Z.B. steht bei der Beschreibung von at() unter <a href="http://www.cppreference.com/cppvector/at.html" rel="nofollow">http://www.cppreference.com/cppvector/at.html</a> einiges an Infos. Vorallem im letzten Satz! Da steht was davon, das at() eine Exception wirft. Naja, leider steht da nicht genau welche.</p>
<p>Die GCC-Website hat glaub ich auch eine sehr gute Dokumentation zur Standard-Library.<br />
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" rel="nofollow">http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/</a> Weiß aber nicht, ob das der offizielle Einstiegslink ist.</p>
<blockquote>
<p>Aber du hast irgendwas vorhin gemeint mit alle Methoden asu der standard lib die sich at() nennen können einen out_of_range werfen. Mh ich versteh jetzt nicht ganz woher soll ich wissen wie die ganzen methoden heißen und ich versteh das auch nicht mit dem &quot;...die sich at() nennen...&quot; es können doch nicht alle Methoden den Namen at() haben??? Oder wie ist das jetzt zu verstehen.</p>
</blockquote>
<p>Na, alle Methoden die sich at() nennen. Ist doch wie &quot;Alle Autos die rot sind, machen ...&quot;.</p>
<p>Beispiele: vector hat eine at()-Methode, aber auch string um auf einzelne Buchstaben zuzugreifen. Es gibt wahrscheinlich noch ein paar andere Klassen die das haben. Weiß ich aber nicht auswendig.</p>
<blockquote>
<p>Genauso auf deiner Page da hast du ja so eine Tabelle erstellt aber mh, manche werden von Bibliotheken geworfen andere von der Sprache. z.B. bei bad_alloc steht geworfen von new is da dieses new gemeint --&gt; int a=new int;</p>
</blockquote>
<p>Genau! Wenn du new aufrufst, forderst du ja neuen Speicher an. Aber Speicher ist begrenzt. Wenn es zu wenig freien Speicher gibt (kannst du ja im Windows-Taskmanaber beobachten), wirft new eine bad_alloc-Exception (bad allocation). Wenn du sie nicht abfängst, zeigt dir Windows eine Fehlermeldung an, was aber schlecht für dein Programm ist.</p>
<p>Fängst du sie aber ab, kannst du deinem Benutzer sagen, das zu wenig Speicher frei ist. Und das Programm kann einen alternativen Weg einschlagen.</p>
<blockquote>
<p>Bei der Funktion hier, da steht als Parameter void *p. Was soll bitte void für einen Typ darstellen? Void ist bei mir &quot;nichts&quot;. Was speichert man in einem void Typ???</p>
</blockquote>
<p>Ja, void ist nichts bzw. void-Pointer zeigen dann halt einfach auf eine Speicheradresse. Typ unbekannt. Wirst du als normaler Anwendungsprogrammierer selten bis garnicht brauchen. Braucht man meistens für Lowlevel-Programmierung.</p>
<p>Aber das ist ja in meinem Tutorial auch völlig wurscht, weil es ja für die Demonstration ist. Das ist sozusagen &quot;Pseudo-Code&quot;. Es geht nur ums Prinzip der Exceptions, der void-Pointer muß halt als Statist herhalten. Ich hätte auch einen int-Pointer nehmen können, würde aber am Beispiel nichts ändern. <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/1200875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200875</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 01 Jan 2007 23:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to This application has requested the Runtime..... on Fri, 12 Jan 2007 21:14:42 GMT]]></title><description><![CDATA[<p>Hallo,<br />
habe mich hierhin durchgeklickt, vllt. kann mir ja jemand helfen:</p>
<p>Seit einigen Tagen erhalte ich, wenn ich ins Internet gehe, die Meldung<br />
Microsoft Visual C++ Runtime Library Runtime Error Program C:\Programme\Internet Explorer\iexplore.exe</p>
<p>Seiten werden blockiert bzw. ich muss sie schließen.</p>
<p>Was kann ich dagegen tun?<br />
(Bin völliger Amateur, habe nichts hilfreiches im Netz gefunden. Forensuche hier hat auch nichts gebracht, Beitrag ggf. bitte verschieben!)</p>
<p>Es dankt<br />
Carmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209040</guid><dc:creator><![CDATA[Carmen2]]></dc:creator><pubDate>Fri, 12 Jan 2007 21:14:42 GMT</pubDate></item></channel></rss>