• Keine Ergebnisse gefunden

array long ÈÉ

N/A
N/A
Protected

Academic year: 2022

Aktie "array long ÈÉ"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Lehrstuhl für Connected Mobility Fakultät für Informatik Technische Universität München. Grundlagen - Betriebssysteme und Systemsoftware IN0009, WiSe 2020/21 Übungsblatt 2 09. November–15. November 2020 Hinweis: Mit * gekennzeichnete Teilaufgaben sind ohne Lösung vorhergehender Teilaufgaben lösbar.. Aufgabe 1. Operatorpräzedenz. In C gelten die folgenden Präzedenzregeln (nicht vollständig): [] (Array) und () (Funktion) werden von links nach rechts abgearbeitet und haben Vorrang vor * (Pointer/Dereferenzierung) und & (Adresse), welche von rechts nach links abgearbeitet werden. Bestimmen Sie davon ausgehend, wie die folgenden Ausdrücke gelesen werden: a)* long **foo[7];. ÈÉ. array of 7. pointer to pointer to. Long b)* unsigned long int **x();. 7. TI. is function returning pointer to pointer to. unsigned. long int. c)* char *(*(**foo [][8])())[];. foo is array of array of. 8 pointer to pointer. function returning pointer to array of pointer to chan to. Prof. Dr.-Ing. Jörg Ott ott@in.tum.de. Martin Uhl gbs@cm.in.tum.de. 1.

(2) Lehrstuhl für Connected Mobility Fakultät für Informatik Technische Universität München. Aufgabe 2. Sichere Programmierung und typische Fehler. Erklären Sie wieso jeder der folgenden Programmschnipsel auf keinen Fall verwendet werden sollte. Erläutern Sie die Fehler und wie diese behoben werden können. a)* 1 2. char userinput [256]; gets ( userinput ) ;. gets. fiihrtkeinenullternrinierungde eingabednr.ch und schreibtggf.iibe.ir. das Array Winans. Buffer overflow. b)* 1 2. char userinput [256] = {0}; int ret = scanf (" %256 s " , userinput );. Bumbler gilet 256 Zeichen ein Dourif ist string nicht mehr undermining Listing c)* 1 2. Nur. 255. Zeicheneinlesenodernullbyh selbstsetren priipwressore.rs. # define MUL (x ,y ) x* y int y = MUL (4+1 , 3+6) ;. Aus 2. listing. Zein wird. Malata genia stupide int y. define Nulli y. 4 1. Ix. 3 6. Punta. strict. y. d)* 1. int * p1 , p2 ;. int int pointer. Losing Prof. Dr.-Ing. Jörg Ott ott@in.tum.de. int. pt. Martin Uhl gbs@cm.in.tum.de. p2 2. var.

(3) Lehrstuhl für Connected Mobility Fakultät für Informatik Technische Universität München. e)* 1 2 3 4. int * p = ( int *) malloc ( sizeof ( int )); scanf ( " % d " , p ); free ( p ) ; printf ( " * p is %d " , * p) ;. Problem. use. after free. Nach den free einer Variable dart dies nicht mehrverwendlbwevde.ir da der Speicher benoit anders behest sein bimbe f)* 1 2 3 4 5. NULL. int * list ;. ansonstenzufiilligiuitialisie.pt. if ( list == NULL ){ list = ( int *) malloc ( LIST_SIZE ) ; }. L. sized int. da ein int 4lb gap ist. listing int. list. Prof. Dr.-Ing. Jörg Ott ott@in.tum.de. Intl. Martin Uhl gbs@cm.in.tum.de. malloclllst.SI E. sizeoflint. 3.

(4) Lehrstuhl für Connected Mobility Fakultät für Informatik Technische Universität München. Aufgabe 3. Hexdump. Es sei folgender Hexdump der Speicheradressen 0x00000000-0x000000FF gegeben:. CD Adr 890150 4e2 47 4 0a E 52F B 49 3 0d 5 1a67 9A 8 00 0a ff 00 00 48 44. 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0. 00 aa 47 61 66 f1 68 62 41 5d 18 c4 08 49 87. 00 00 42 01 74 20 74 2e 54 76 63 44 00 f6 39. 05 00 53 a8 77 f5 74 6f 78 97 bb 62 00 c6 33. 7. 00 00 00 3f 61 65 70 72 9c be 37 12 00 58 df. 00 a7 88 a7 72 72 3a 67 ec 85 a2 4d 39 00 59. 00 73 00 69 65 73 2f 2f dd de 49 31 05 dd 75. MIT. 02 42 00 00 00 69 73 10 77 62 ae d7 00 e5 9d. i. 82 49 00 00 6d 6f 74 66 9c 69 29 80 00 ec f9. 08 54 4d 00 61 6e 72 17 54 6e e6 b1 b2 ce ce. 06 08 00 38 74 33 69 19 e5 67 17 5f d4 7e 73. T. 00 08 00 74 70 2e 6e 00 a1 6f d4 5b 2d de 9e. 00 08 0f 45 6c 31 67 00 ff 00 28 12 2c af 27. 00 08 61 58 6f 2e 00 20 f1 a4 22 51 db d7 12. 8e 7c 00 74 74 31 74 00 cf 05 45 41 cf bc 04. 3b 08 00 53 6c 2c 6c 49 6c 93 16 20 ef 5e 41. 74 64 0f 6f 69 20 69 44 85 dc 05 8a 8f 3c 80. Bsp Zabel 0 1234561. hiochstw.to Byte. niede.ru. 1. Byte. Little Endian. t. Adr. Big Endian. Adr 4 Wir befinden uns auf einer 32-bit little-endian Architektur, eine Speicheradresse sei somit 32 bit breit. Ein Integer sei 32 bit breit. Das folgende Programm basiert darauf, dass Pointer und Integer gleich breit sind. Seien Sie sich bewusst, dass dies in der Realität nicht unbedingt der Fall ist! Für die Umrechnung von hex zu ascii nehmen Sie man 7 ascii zur Hilfe. a)* Wie viele Hex-Zeichen umfasst eine Speicheradresse im obigen Hexdump?. 1 Het Zeichen e 2 Het Zeichen e. 4 Bit 8 Bit E 1 Byte 8 Hex Zeichen E 32 Bit E 4 Byte b) Nehmen wir an, an der Adresse 0x8c ist ein Pointer gespeichert. Wie lautet die Adresse, auf die der Pointer zeigt? Beachten Sie die endianness der Architektur!. An Ox 8C stent. also. 0 20004944. In Little Endian. 0 44490020. c) Bestimmen Sie die Ausgaben des folgenden Programms, ausgeführt im Kontext des obigen Speicherausschnitts: 1 2 3 4 5 6 7 8. An 0 30 debt 47425300 In ASCII also GBS tu 0 10 stent 0800 00 00 also 0 8 in LE printf ( " Some string : % s" , x) ; printf ( " Some other string : % s" , xBS +0 x46 ); 0 10 0 46 0 76 tu 0 76 stent int a = i [1]; i il 0 10 in 0 14 0 539 737472696E6700 int b = *( int *) *i ; 11337 s t r i n g char * x = ( char *) 0 x30 ; int * i = ( int *) 0 xd0 ;. Prof. Dr.-Ing. Jörg Ott ott@in.tum.de. i. s wertanoxdops.IE some other string string 0 8 Martin Uhl gbs@cm.in.tum.de. twng. 4.

(5) Lehrstuhl für Connected Mobility Fakultät für Informatik Technische Universität München. 9. printf ( "a : %d , b : %d " , a , b) ;. Prof. Dr.-Ing. Jörg Ott ott@in.tum.de. Martin Uhl gbs@cm.in.tum.de. 5.

(6)

Referenzen

ÄHNLICHE DOKUMENTE

Seiko Epson does not assume any liability of any kind arising out of any inaccuracies contained in this material or due to its application or use in any product or circuit and,

Besprechung Blatt 13 Graphalgorithmen Bin¨ arb¨ aume in einem Array Vorbereitung Fragen.. Fragen zu

By default, the Hawk supplies term power on all ports. At least one device on any nSSI or SCSI interconnect must supply term power to the terminators. There is no harm in

This means that the transfer function matrix has a triangular form and hence, that the RGA matrix is identical to the identity matrix: this means that we can reach good control with

– Ist ein tatsächlich vorhandenes Objekt (So wie es mehrere Variablen gleichen Typs geben kann, kann es auch mehrere Instanzen der gleichen Klasse geben.).

Ziel: Finde einen Algorithmus, welcher im schlechtesten Fall nur linear viele Schritte benötigt. Algorithmus Select ( k -smallest)

Jeder Algorithmus zur Suche in sortierten Daten der Länge n benötigt im schlechtesten Fall Ω(log n) Vergleichsschritte.... Untere Schranke f ¨ur Suchen in

Jeder Algorithmus zur Suche in sortierten Daten der Länge n benötigt im schlechtesten Fall Ω(log n) Vergleichsschritte... Untere Schranke f ¨ur Suchen in