Nicht angemeldet. · Kennwort vergessen · Registrieren

aj92ywaf
Mitglied seit 02/2012
3 Beiträge
Betreff: Klausur Aug 2006
Hätte da mal ne frage zur Klausur Aug 2006

Aufgabe 1 c)
Antwort 2 fällt shhonmal weg da char ein Integertyp ist und somit natürlich vorzeichenlos sein kann.
Antwort 4 würde für mich auch keinen Sinn machen.

D.h. es könnte nur noch A.1 oder 3 richtig sein.

Mein problem liegt darin das Pointer ja nur auf einen Adressraum verweisen und ich somit die Werte and diesen Stellen verändern kann.
Und hier (sofern ich das jetzt richtig verstehe) wird der Wert 0x01 in den Speicher geschreiben auf den 0x3B verweist.

Allerdings bin ich mir nicht sicher ob man einen "Wert" ( hier 0x3B) als pointer verwenden kann. Oder hab ich da was im Skript übersehen?

Oder ist *0x3b dann gleich die Speicheradresse??

BZW warüm wäre dann Antwort 3 richtig/falsch??
killermiller
Mitglied seit 05/2011
41 Beiträge
Hätte da mal ne frage zur Klausur Aug 2006

Aufgabe 1 c)
Antwort 2 fällt shhonmal weg da char ein Integertyp ist und somit natürlich vorzeichenlos sein kann.
richtig, unsigned char funktioniert genauso wie unsigned int.
Antwort 4 würde für mich auch keinen Sinn machen.
Stimmt...möglicherweise könnte man Interrupts durch setzen des Pending-Bits aktivieren, aber nicht an dieser Adresse.
D.h. es könnte nur noch A.1 oder 3 richtig sein.

Mein problem liegt darin das Pointer ja nur auf einen Adressraum verweisen und ich somit die Werte and diesen Stellen verändern kann.
Und hier (sofern ich das jetzt richtig verstehe) wird der Wert 0x01 in den Speicher geschreiben auf den 0x3B verweist.

genau das, also 0x01 an die Adresse 0x3B.
Allerdings bin ich mir nicht sicher ob man einen "Wert" ( hier 0x3B) als pointer verwenden kann. Oder hab ich da was im Skript übersehen?
Doch, das funktioniert genau so.
Im Skript ist als Beispiel die Definition des "PORTD"-Makros drin, zusammengefasst auf den Folien zur Übung https://www4.cs.fau.de/Lehre/SS11/V_GSPIC/Uebungen/Folien/… auf Seite 2, wo eben dieser Port direkt unter Angabe der Adresse definiert ist.
Oder ist *0x3b dann gleich die Speicheradresse??

BZW warüm wäre dann Antwort 3 richtig/falsch??
Einfach gesagt, Antwort 3 ist richtig, weil alle anderen falsch sind;) So weit ich weiß, war 2006 auch Linux-Programmierung noch ein Teil der Klausur, vielleicht wurde das damals mal angesprochen.
aj92ywaf
Mitglied seit 02/2012
3 Beiträge
Nice, danke.
D.h. also das 0x3B die Speicheradresse ist und ich durch pointer direkt auf leere Speicheradressen zugreifen und diese belegen kann!?
Oder müssen die Speicheradressen vorher initialisiert werden?
killermiller
Mitglied seit 05/2011
41 Beiträge
Genaugenommen kannst du durch Pointer überall hinschreiben (wenn der Speicher an der zu beschreibenden Stelle ned grad explizit geschützt ist, durch Betriebssystem o.ä.). Ob an der Stelle schon was steht oder nicht, ist egal. Danach steht halt drin, was du reingeschrieben hast;) Und initialisiert werden muss da nix, so lang der Speicher im µC verbaut is, sin die Adressen verwendbar, einfach ausgedrückt...
Schließen Kleiner – Größer + Auf diesen Beitrag antworten:
Prüfcode: VeriCode Gib bitte das Wort aus dem Bild ins folgende Textfeld ein. (Nur die Buchstaben eingeben, Kleinschreibung ist in Ordnung.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Weitere Zeichen:
Gehe zu Forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen