Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Pointerproblemchen
Ich hab hier ne kleine Frage, die mir die Profis sicher schnell beantworten können:
Ich habe 2 Pointer. Der Pointer A zeigt auf eine Speicherzelle (das machen Pointer doch, oder) mit dem Wert 5!
Der Pointer B zeigt auf eine andere Speicherzelle mit dem Wert 7.
Ich möchte jetzt diese Werte tauschen. Wenn ich einfach nur die Pointer swappe ( Also A wird zu B und B wird zu A) dann zeigen sie halt einfach nur auf die jeweils andre Zelle.
Was ich möchte ist, dass 7 in die Speicherzelle wandert, in der 5 stand und umgekehrt. Ich möchte also direkt den Wert im Speicher tauschen.
Wie mache ich das?
nun ja
Pointer dereferenzieren: * Operator gibt den Wert in der Speicherzelle
eine temporäre variable, z.B
tmp;
tmp=*A;
*A=*B;
*B=tmp;
Wenn ich den ersten Schritt durchführe kommt beim Compiler:
"Assignement of read-only data-member… prQueue::swap_value
swap_value ist vom typ “T swap_value”.
und den habe ich gleichsetzen wollen mit einem “T* value”…
wie du es geschrieben hast. Woran liegt das? :-/
aufgabe1b
Hallo Leute,
kann mir jemand sagen, was man beim Ausfuehren von queueTeast auf dem Bildschirm kriegen muss
Das ist leicht … oder … Das ist leicht
X
also bei mir kommt “Das ist leicht” ohne X raus… wenn ich so nachzähle kommen ja nur 15 insert d.h. es kann nur “Das ist leicht” + 1 zeichen (indem fall das “\n”) geinsert werden…
desweiteren ist ja test+14 das maximale was geinsert wird… d.h. test zeigt auf das erste wort +14 = ‘\n’
also müsste das ohne X rauskommen
korrigiert mich wenn ich irre…
@Guardian
wie du schreibst: swap_value ist vom typ “T swap_value”.
also vom Typ T und T ist “const char”
const char ist eine konstante zeichenkette, die kannst du nicht an irgendwas zuweisen.
deswegen die Fehlermeldung read-only data-member…
mach
T * swap_value;
dann kannst du es mit einem T* gleichsetzen.
aber wozu swappen`? die Aufgabe geht ohne swap…
bei mir kommt zur Zeit
Das ist leiht
c
komisch…
es kann sein, dass deine Methode insert nicht richtig funktioniert…ich hatte auch solche Probleme
evtl könnte ich mir vorstellen das du bei der Prioritätsüberprüfung was mit > und >= oder eben < und<= verbuchselt hast
Nun funktioniert es.
Als ich am ende der Liste war habe ich immer ans letzte Element angehängt, ohne Priorität zu prüfen :#: dummer Fehler!
Richtig ist
Max: grosses D
Da haste wohl irgendwas verbockt
Aber hast ja noch bis Dienstag Zeit, deine queue zu verbessern :*)
however, richtig isses bei mir