Wie 3 Werte an eine Funktion zurückgeben?
-
Hacker schrieb:
seit C99 ist das aber sowieso im Standard
Wir programmieren hier aber C++, wo VLAs nach wie vor verboten sind.
Der Code beweist gar nichts, es handelt sich um eine g++-spezifische Compilererweiterung und nicht um Standard-C++.
-
Liebe Forummitglieder,
ich habe meinem Dozenten nochmal eine Email zu diesem Problem geschrieben. Mal sehen, was er dazu schreibt.
Ich danke euch für eure Beiträge und werde meinen Code nochmal überarbeiten. Mit cout wäre das Ganze kein Problem, ohne ist es jedoch sehr umständlich.
Grüße
Kakashi
-
Hacker schrieb:
Wieso benutzt du C-Arrays für dynamische Speicheranforderung? Wär doch viel einfacher mit z.B. einem vector o.ä.?
kakashi83 schrieb:
*Bibliotheksfunktionen dürfen nicht benutzt werden
Hacker schrieb:
Und nein, nicht OK wenn
nconstist, es müsste schonconstexprsein.Doch, das ist genau richitg so. Die Größe eines Arrays muss ein konstanter Ausdruck sein und das ist
n, da es const-spezifiziert ist und mit einem konstanten Ausdruck initialisiert wurde.
-
Gugelmoser schrieb:
Doch, das ist genau richitg so. Die Größe eines Arrays muss ein konstanter Ausdruck sein und das ist
n, da es const-spezifiziert ist und mit einem konstanten Ausdruck initialisiert wurde.const hat mit konstanten Ausdrücken erstmal nichts zu tun. Nicht alles, was const ist, ist auch ein konstanter Ausdruck.
int i = 42; int const j = i; // const, aber kein konstanter AusdruckDa im oben gegebenen Beispiel n ein konstanter Ausdruck ist, funktioniert es.
-
Gugelmoser schrieb:
da es const-spezifiziert ist und mit einem konstanten Ausdruck initialisiert wurde.
Bei
constexprist immer garantiert, dass ihm ein konstanter Ausdruck zugewiesen wurde.
-
314159265358979 schrieb:
Gugelmoser schrieb:
Doch, das ist genau richitg so. Die Größe eines Arrays muss ein konstanter Ausdruck sein und das ist
n, da es const-spezifiziert ist und mit einem konstanten Ausdruck initialisiert wurde.const hat mit konstanten Ausdrücken erstmal nichts zu tun. Nicht alles, was const ist, ist auch ein konstanter Ausdruck.
Habe ich auch nicht behauptet.
-
Gugelmoser schrieb:
, da es const-spezifiziert ist
Nein, hast du natürlich nicht. Es heißt übrigens qualifiziert.
-
Tja, ohne Bibliotheksfunktion läuft es wohl auf WriteConsole auf Windows bzw auf write bei dem Rest der Welt heraus.

-
Hallo Leute,
mein Dozent sagte, es gänge mit Referenzparametern. Trotzdem bin ich mir noch nicht ganz im Klaren. Ich werde es aber einmal probieren.
Grüße
Kakashi
-
das haben wir dir doch auch gesagt.
die frage war, wie die ausgabe ohne cout und bibliotheksfunktionen erfolgen sollte.
-
unskilled schrieb:
die frage war, wie die ausgabe ohne cout und bibliotheksfunktionen erfolgen sollte.
Das ist keine Frage. Ohne Bibliotheksfunktionen könntest du dir allerhöchstens selber ein
ostream-Objekt basteln und das an den Ausgabestream koppeln (der wiederum auch eine Bibliotheksfunktion ist); das ist allerdings völlig unmöglich für einen Anfänger zu schaffen.
-
dummerweise mal wieder komplett fail deine antowrt: man braucht kein ostream-objekt zu basteln, da man die stream-eigenschaften nicht zwangsläufig braucht. aber ansonsten hast du den widerspruch super bemerkt...
-
Mit der Einschränkung wird nur gemeint sein, dass der Kram nicht innerhalb der Funktion sieb ausgegeben werden soll, sondern in main. Der Zweck der Übung scheint ja zu sein, call-by-reference zu lernen.