Kann mir jemand folgenden C++ Code kurz erklären?
-
student* neu = new student;
neu ->name = name;
neu ->matrikel = matrikel;
neu ->note = note;if (start == NULL)
{
start = neu;
neu ->next=start;
}
else
{
neu ->next = start ->next;
start ->next = neu;}
Danke für ANTWORTEN.
-
Es geht um eine verkettete Liste, aber zeig mal den ganzen Code.
Und verwende Codetags.
-
danke für deine antwort.
leider ist das der ganze code, ist eine lösung aus einer teilaufgabe, wo man nur diesen teil code angeben musste.
kannst du mir kurz zeile für zeile erklären, was sie bedeuten?
-
BlueMagic schrieb:
kannst du mir kurz zeile für zeile erklären, was sie bedeuten?
Das wird garantiert niemand tun. Stell konkrete Fragen, was du nicht verstehst! (Und jetzt sag nicht "alles"!)
-
also in der ersten zeile steht:
student* neu = new student;
was bedeutet der stern und dann das folgende neu?
wird da ein neuer zeiger namens "neu" angelegt?
-
Höchstwahrscheinlich macht der Code auch nicht das, was beabsichtigt ist...
-
Wenn du den "Stern" nicht kennst, können wir leider nicht mehr machen als dir ein Einsteigerbuch zu empfehlen ...
-
BlueMagic schrieb:
also in der ersten zeile steht:
student* neu = new student;
was bedeutet der stern und dann das folgende neu?
wird da ein neuer zeiger namens "neu" angelegt?Angelegt und initialisiert (mit der Adresse eines neu angelegten Objekts vom Typ student).
camper schrieb:
Höchstwahrscheinlich macht der Code auch nicht das, was beabsichtigt ist...
Ja.
Aber sowas ähnliches...
-
@camper: der code tut was er soll. ist wie bereits erwähnt eine lösung aus 'ner prüfung.
@ethon: der stern hat in diesem zusammenhang ja was mit einem zeiger zu tun, wie ich geschrieben hatte, also lag ich nicht so falsch.
wahrscheinlich hast du aber selbst keine ahnung vom programmieren und konntest mir deshalb auch nicht antworten :p
-
???
Ethon hat wesentlich mehr Ahnung vom Programmieren als du.
Und nein, der Code macht nicht ganz das, was beabsichtigt ist (kommt allerdings auf die Aufgabenstellung an).
Und ja, da wird ein Zeiger namens neu angelegt. Der zeigt auf einen dynamisch allokierten Speicher im Heap.
-
Nathan schrieb:
Und nein, der Code macht nicht ganz das, was beabsichtigt ist .
Woher wisst Ihr eigentlich alle, was beabsichtigt ist?
Nathan schrieb:
Und ja, da wird ein Zeiger namens neu angelegt. Der zeigt auf einen dynamisch allokierten Speicher im Heap.
Wie unverschämt muss man eigentlich werden, damit hier einem keiner mehr antwortet?
-
Eine Frechheit so eine Unterstellung bzgl. Ethon zu unterbreiten, gerade als Fragestellender, der nicht Mal die Grundlagen der Grundlagen versteht.
student* neu = new student;
Zeiger und Heap-Speicher-Allokation nebst constructor-Aufruf, aber das hilft Dir nicht. Besorg Dir besser ein Buch oder gehe im Tutorial ein paar Kapitel zurück. Das sind Konzepte, deren Erklärung den Rahmen des Forums sprengt.
-
camper schrieb:
Höchstwahrscheinlich macht der Code auch nicht das, was beabsichtigt ist...
Warum nicht? Das sieht aus wie eine Liste, bei der das letzte Element auf das erste zeigt und neue Elemente an der zweiten Position eingefügt werden.
-
@nathan: kannst du nicht lesen? der code tut exakt das, was er soll, die lösung ist korrekt. richtig, du kennst die aufgabenstellung nicht, also laber kein sch***. ethon hat keine ahnung, da er mir nicht antworten konnte, oder warum fiel ihm nur so eine arrogante antwort ein? wenn er ahnung hätte, hätte er kurz und knapp mir eine richtige antwort gegeben.
achja deine erste antwort ist für den müll gewesen. "es geht um eine verkettete liste.." , das sieht doch jeder, da kann ich über dich nur lachen.
-
Belli schrieb:
Nathan schrieb:
Und nein, der Code macht nicht ganz das, was beabsichtigt ist .
Woher wisst Ihr eigentlich alle, was beabsichtigt ist
Ich gehe davon aus, dass das Einfügen in eine verkettete Liste sein soll.
Ich bezweifel aber, dass bei start == NULL start auf next und neu->next auf start (also auf next) zeigen soll, da das beim Durchlaufen der Liste zu einer Endlosschleife führen wird.Edit: @TE:
Gehts dir noch gut?!
DU willst Hilfe von UNS, also benehme dich auch so!
Klar sieht das jeder, aber bei deinen Aussagen bezweifele ich es, dass du es siehst...
-
@eisflamme: warum soll die unterstellung frechheit sein? erstens mal, war ethons antwort eine FRECHHEIT gegenüber einem neuen hier im forum. zweitens, ich komme zu dieser unterstellung, da ethon mir nicht antworten konnte, also ist meine annahme doch berechtigt.
-
@nathan: das versuche ich ja. aber es fällt einem neuen hier im forum schwer, wenn da so eine ARROGANTE ANTWORT VON ETHON kommt, er kann doch einfach mir einen tipp geben, oder gar nichts schreiben. seid ihr freundlich, dann bin ich es auch und ich bin für jede normale antwort dankbar.
-
BlueMagic schrieb:
@eisflamme: warum soll die unterstellung frechheit sein? erstens mal, war ethons antwort eine FRECHHEIT gegenüber einem neuen hier im forum. zweitens, ich komme zu dieser unterstellung, da ethon mir nicht antworten konnte, also ist meine annahme doch berechtigt.
ethons Unterstellung kommt von deinem
BlueMagic schrieb:
kannst du mir kurz zeile für zeile erklären, was sie bedeuten?
Denn wenn du hier für jede Zeile eine Erklärung brauchst, dann muss man annehmen, dass du überhaupt nichts verstehst. Nochmals bestätigt dadurch, dass du laut eigener Aussage nicht weißt, was der Stern bedeutet. Was soll man dir denn in dem Fall sonst empfehlen, außer die Grundlagen der Grundlagen zu lernen? Eine Antwort auf normalem Niveau würdest du doch sowieso nicht verstehen.
-
BlueMagic schrieb:
kannst du nicht lesen?
laber kein sch***.
ethon hat keine ahnung
achja deine erste antwort ist für den müll gewesen.Du bist der, der hier keine Ahnung hat. Und zwar nicht mal von den allergrundlegendsten Grundlagen. Also masse dir nicht Urteile über Dinge an, die weit jenseits deines Horizonts liegen.
Als Hilfesuchender kannst du dich entsprechend benehmen und die Ratschläge von Forenusern erst nehmen, besonders wenn du neu bist. Ethon hat völlig recht mit dem Hinweis auf ein Einsteigerbuch -- wenn du solche Basics nicht verstehst, fehlt dir Grundlagenwissen, das man nicht mal eben schnell in zwei Sätzen erklären kann.
Aber auf diesem Niveau wie im Zitat brauchst du hier gar nicht weiterzudiskutieren, so erreichst du nichts. Entweder du schilderst dein Problem vernünftig und bleibst freundlich (auch wenn dir mal ein Kommentar nicht passt), oder du lässt es gleich sein.
-
warum ich für jede zeile eine erklärung wollte? Weil ich eben nur eine ahnung habe, aber nicht 100prozentig weiß, ob ich richtig vermute und weil ich einfach die richtige erklärung dafür wollte. deshalb dachte ich, schreib ich mal hier in ein forum. ich dachte hier könnte man mir schnell und einfach helfen. ist wohl nicht der fall.