<?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[Probleme mit Funktion]]></title><description><![CDATA[<p>Warum funktioniert folgendes Programm nicht?</p>
<pre><code>#include&lt;iostream&gt;
using namespace std;

int ergebnisMatrikelnummer[0];
int ergebnisPunktzahl[0];

int main()
{
    return 0;
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;
#include &quot;Auswertung.h&quot; 

    int ergebnisPunktzahl[0];
    int Anzahl=0;
    double klausurdurschnitt=0.0;
    void  klausurdurchschnitt()
    {
          klausurdurschnitt=ergebnisPunktzahl[0]/Anzahl;
          cout&lt;&lt;&quot;Klausurdurchscnitt &quot;&lt;&lt;klausurdurschnitt&lt;&lt;endl;
    }
    /*void  durchfallquote()
    void  bestenote()
    void  durchgefallen()
    void  auflisten()*/
</code></pre>
<pre><code>#ifndef _IOSTREAM
#define _IOSTREAM
#include &lt;iostream&gt;
using namespace std;
#endif

#ifndef _Auswertung_H_INCLUDED_ 
#define _Auswertung_H_INCLUDED_  

    void  klausurdurchschnitt();
    void  durchfallquote();
    void  bestenote();
    void  durchgefallen();
    void  auflisten();

#endif
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;

#include &quot;Benutzeroberflaeche.h&quot; 

void menu()
{
     cout&lt;&lt;&quot; +: Klausurergebnis hinzufügen&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; -: Klausurergebnis entfernen&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; m: Klausrdurschnitt ausgeben&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; q: Durchfallquote ausgeben&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; t: Auflisten der besten Noten&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; f: Durchgefallene Studenten&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; l: Klausurergebnisse auflisten&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; e: Programm beenden&quot;&lt;&lt;endl;

     char c='0';

     switch(c)
     {
              case '+':
                   hinzufügen();
              case '-':
                   loeschen();
              case 'm':
                   klausurdurchschnitt();
              case 'q':
                   durchfallquote();
              case 't':
                   bestenote();
              case 'f':
                   durchgefallen();
              case 'l':
                   auflisten();
              case 'e':
                   beenden();
     }
}
</code></pre>
<pre><code>#ifndef _IOSTREAM
#define _IOSTREAM
#include &lt;iostream&gt;
using namespace std;
#endif

#ifndef _Benutzeroberflaeche_H_INCLUDED_ 
#define _Benutzeroberflaeche_H_INCLUDED_  

	void  menu();

#endif
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namspace std;

#include &quot;Ergebnisverwaltung.h&quot;

int Anzahl=0;

void hinzufügen()
{

     cout&lt;&lt;&quot;Bitte geben Sie die Anzahl der mitgeschriebenen Klausuren ein&quot;&lt;&lt;endl;
     cin&gt;&gt;Anzahl
     for(int i=0; i&lt;Anzahl;i++)
     {
             cout&lt;&lt;&quot;Ergebnis sowie Matrikelnummer ein geben&quot;&lt;&lt;endl;
             cin&gt;&gt;ergebnisMatrikelnummer[0];
             cin&gt;&gt;ergebnisPunktzahl[0];
     }
}
</code></pre>
<pre><code>#ifndef _IOSTREAM
#define _IOSTREAM
#include &lt;iostream&gt;
using namespace std;
#endif

#ifndef _Ergebnisverwaltung_H_INCLUDED_ 
#define _Ergebnisverwaltung_H_INCLUDED_  

	void hinzufügen();

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/327347/probleme-mit-funktion</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 10:45:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327347.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Aug 2014 07:53:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 07:53:05 GMT]]></title><description><![CDATA[<p>Warum funktioniert folgendes Programm nicht?</p>
<pre><code>#include&lt;iostream&gt;
using namespace std;

int ergebnisMatrikelnummer[0];
int ergebnisPunktzahl[0];

int main()
{
    return 0;
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;
#include &quot;Auswertung.h&quot; 

    int ergebnisPunktzahl[0];
    int Anzahl=0;
    double klausurdurschnitt=0.0;
    void  klausurdurchschnitt()
    {
          klausurdurschnitt=ergebnisPunktzahl[0]/Anzahl;
          cout&lt;&lt;&quot;Klausurdurchscnitt &quot;&lt;&lt;klausurdurschnitt&lt;&lt;endl;
    }
    /*void  durchfallquote()
    void  bestenote()
    void  durchgefallen()
    void  auflisten()*/
</code></pre>
<pre><code>#ifndef _IOSTREAM
#define _IOSTREAM
#include &lt;iostream&gt;
using namespace std;
#endif

#ifndef _Auswertung_H_INCLUDED_ 
#define _Auswertung_H_INCLUDED_  

    void  klausurdurchschnitt();
    void  durchfallquote();
    void  bestenote();
    void  durchgefallen();
    void  auflisten();

#endif
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;

#include &quot;Benutzeroberflaeche.h&quot; 

void menu()
{
     cout&lt;&lt;&quot; +: Klausurergebnis hinzufügen&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; -: Klausurergebnis entfernen&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; m: Klausrdurschnitt ausgeben&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; q: Durchfallquote ausgeben&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; t: Auflisten der besten Noten&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; f: Durchgefallene Studenten&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; l: Klausurergebnisse auflisten&quot;&lt;&lt;endl;
     cout&lt;&lt;&quot; e: Programm beenden&quot;&lt;&lt;endl;

     char c='0';

     switch(c)
     {
              case '+':
                   hinzufügen();
              case '-':
                   loeschen();
              case 'm':
                   klausurdurchschnitt();
              case 'q':
                   durchfallquote();
              case 't':
                   bestenote();
              case 'f':
                   durchgefallen();
              case 'l':
                   auflisten();
              case 'e':
                   beenden();
     }
}
</code></pre>
<pre><code>#ifndef _IOSTREAM
#define _IOSTREAM
#include &lt;iostream&gt;
using namespace std;
#endif

#ifndef _Benutzeroberflaeche_H_INCLUDED_ 
#define _Benutzeroberflaeche_H_INCLUDED_  

	void  menu();

#endif
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namspace std;

#include &quot;Ergebnisverwaltung.h&quot;

int Anzahl=0;

void hinzufügen()
{

     cout&lt;&lt;&quot;Bitte geben Sie die Anzahl der mitgeschriebenen Klausuren ein&quot;&lt;&lt;endl;
     cin&gt;&gt;Anzahl
     for(int i=0; i&lt;Anzahl;i++)
     {
             cout&lt;&lt;&quot;Ergebnis sowie Matrikelnummer ein geben&quot;&lt;&lt;endl;
             cin&gt;&gt;ergebnisMatrikelnummer[0];
             cin&gt;&gt;ergebnisPunktzahl[0];
     }
}
</code></pre>
<pre><code>#ifndef _IOSTREAM
#define _IOSTREAM
#include &lt;iostream&gt;
using namespace std;
#endif

#ifndef _Ergebnisverwaltung_H_INCLUDED_ 
#define _Ergebnisverwaltung_H_INCLUDED_  

	void hinzufügen();

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2412175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412175</guid><dc:creator><![CDATA[Reeko25]]></dc:creator><pubDate>Wed, 06 Aug 2014 07:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:00:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du solltest nochmal was über Arrays lesen.<br />
Das hier</p>
<pre><code>int ergebnisMatrikelnummer[0]
</code></pre>
<p>erzeugt ein Array der Größe 0. Jeder Zugriff auf solch ein Array erzeugt undefiniertes Verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412177</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:00:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:02:52 GMT]]></title><description><![CDATA[<pre><code>ergebnisMatrikelnummer[0]
</code></pre>
<p>greift auf das 1. Element zu. Das Array hat aber nur 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412178</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:02:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:10:23 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Das hier</p>
<pre><code>int ergebnisMatrikelnummer[0]
</code></pre>
<p>erzeugt ein Array der Größe 0. Jeder Zugriff auf solch ein Array erzeugt undefiniertes Verhalten.</p>
</blockquote>
<p>Wie funktioniert das in der Praxis überhaupt? Muss nicht jedes Datum eine Größe != 0 haben damit man die Adresse nehmen kann? Warum ist so etwas überhaupt erlaubt und wozu braucht man das und müsste da nicht zumindest der Compiler warnen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412180</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:15:46 GMT]]></title><description><![CDATA[<p>Reeko25 schrieb:</p>
<blockquote>
<p>Warum funktioniert folgendes Programm nicht?</p>
<pre><code>#include&lt;iostream&gt;
using namespace std;

int ergebnisMatrikelnummer[0];
int ergebnisPunktzahl[0];

int main()
{
    return 0;
}
</code></pre>
</blockquote>
<p>&quot;funktioniert nicht&quot; ist eine ungenügende Fehlerbeschreibung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> . Aber ein Blick in main zeigt, erst mal, was das Programm überhaupt machen soll. Nämlich gar nichts. Und das funktioniert nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412183</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:15:46 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:22:21 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>Wie funktioniert das in der Praxis überhaupt? Muss nicht jedes Datum eine Größe != 0 haben damit man die Adresse nehmen kann? Warum ist so etwas überhaupt erlaubt und wozu braucht man das und müsste da nicht zumindest der Compiler warnen?</p>
</blockquote>
<p>In C++ ist es illegal, ein Array der Länge 0 zu deklarieren. Ob und wie das akzeptiert wird hängt dann vom Compiler ab.</p>
<p>(mittels new[] darf man trotzdem ein Array der Länge 0 erstellen)</p>
<p>Edit: Quellen:</p>
<p>ISO/IEC 14882:2003 8.3.4/1:<br />
If the constant-expression (5.19) is present, it shall be an integral constant expression and its value shall be greater than zero.</p>
<p>ISO/IEC 14882:2003 5.3.4/6:<br />
The expression in a direct-new-declarator shall have integral or enumeration type (3.9.1) with a non-negative value.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412185</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:25:08 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>Wie funktioniert das in der Praxis überhaupt? Muss nicht jedes Datum eine Größe != 0 haben damit man die Adresse nehmen kann? Warum ist so etwas überhaupt erlaubt und wozu braucht man das und müsste da nicht zumindest der Compiler warnen?</p>
</blockquote>
<p>Relikt aus alten Zeiten, um dynamische Arrays zu erzeugen. Kann unter Umständen auch heute noch nützlich sein, da es die Daten schön beisammen hält:</p>
<pre><code>struct foo
{
  int blah, bluh, blupp;
  int bar[0];  // Größe soll dynamisch sein
}; 

// sizeof(struct foo) sollte sizof(int[3]) entsprechen

struct foo *f = malloc(sizeof(*f) + 4 * sizeof(int));  // Voila, auf dem Heap liegt nun ein struct foo, welches ein Array der Größe 4 enthält.
// Bemerkung: Das Array ist wirklich in dem Objekt enthalten. Da sind keine Zeiger auf dynamischen Speicher im Objekt. Alles ist beisammen.
</code></pre>
<p>P.S.: Die Unterstützung der Schreibweise mit der 0 ist anscheinend eine GCC-Erweiterung, in &quot;richtigem&quot; C muss man <code>[]</code> schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412186</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:25:08 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Funktion on Wed, 06 Aug 2014 08:41:01 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>: Jetzt wo du es sagst: So etwas habe ich mit schaudern schon mal in altem Code gesehen und ich verstehe jetzt auch, wie das funktioniert. Da muss man aber schon aus der C-Ecke kommen und das nachzuvollziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412191</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 06 Aug 2014 08:41:01 GMT</pubDate></item></channel></rss>