Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Speicherverwaltung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 2 Beiträge
InformaTiger RE: Speicherverwaltung

Hallo Informatics,

ich habe mir soeben deine Aufgabenstellung durchgesehen und bin zu folgendem Ergebnis gekommen:

  1. hier ist das Problem, wie du ganz richtig erkannt hast, dass der Speicher den du anlegst nicht mehr freigegeben wird und der Pointer einfach mit einer neuen Adresse überschrieben wird, so dass der alte Wert für immer im Speicher verschwindet
  2. die Variable ret ist zu beginn auf einen willkürlichen Wert gesetzt, das heißt sollte z nicht gerader größer als 1000 sein kann ret mal true mal false zurückggeben
  3. ich denke hier liegt das Problem viel mehr daran, dass du einfach über den "Rand" des Arrays hinausgreifst (das Array ist nur n - 1 groß und in Zeile 20 erfolgt ein Zugriff auf n)
  4. hier wird die Variable n einfach eliminiert bevor der return-Befehl ausgeführt wird (nein, man kann &z nicht zurückgeben, da es sich dort um eine lokale Adresse vom Stack handelt die beim return-Befehlt verworfen wird)
  5. hier passiert genau das was ich in 4. angekündigt habe - es wird ein lokaler Zeiger zurückgegeben der nicht mehr gültig ist, sobald du den scope der Funktion lv verlässt


Ich hoffe ich konnte helfen smile

Mit freundlichen Grüßen
InformaTiger
Informatics Speicherverwaltung

Meine Frage:
Hallo !
Folgende Aufgabe

Ich soll B zu jeder der Funktionen beschreiben, worin das Problem besteht und jeweils Lösungsvorschläge machen( in wenigen Worten beschreiben, wie dieses Problem vermieden werden kann)
Es geht um Verwendung von Speicher bzw Pointern

Meine Ideen:
1)
Bei der ersten Funktion denke ich dass das Problem zumal ist dass die Variable dynamisch erzeugt wird und nicht mehr gelöscht ?
Lösung : Hier lohnt es sich ja keinen dynamischen Speicher anzulegen , also einfach int a = 5 setzen und das wieder ausgeben..

2)
Beim zweiten versteh ich nicht wo das Problem liegen sollte..

3) Hier wird versucht nachdem man den dynamisch belegten Speicher Pointer gelöscht hat wieder darauf zuzugreifen
Lösung : zuerst return und dann delete ?

4) Dasselbe Problem wie bei3),
Lösung vlt statt return n einfach return &z ?

5) hier versteh ich auch nicht was falsch sein sollte :/

Ich hoffe ihr könnt mir behilflich sein..
LG !

Informatics hat diese Bilder (verkleinerte Versionen) angehängt:
once.png two.png