Zurück zur Liste der KursAngebote und zum ZeitPlan.
Sichere Strings und Speicher in C
Dieser Kurs vermittelt die richtige Benutzung der String Funktionen und des dynamischen Speichers (malloc/free) unter C. Für C Anfänger ist es besonders verwirrend, wenn man mit den C Strings arbeiten muss, die Folge ist eine Menge Bugs, segmentation faults oder gar nicht kompilierte Sources.
Kursprofil
Thema: Sichere Strings und Speicher in C
Veranstalter: Pablo Yanez Trujillo
Veranstaltungsart: Kurs (Theorie und Praxisübungen)
Termin: Montag, 7. August bis Mittwoch, 9. August nachmittags (siehe ZeitPlan)
Ort: Gebäude 101, Raum 01-016
Schwierigkeitsgrad: ![]()
![]()
![]()
Voraussetzungen: Der Kurs orientiert sich an C Anfängern oder Programmierern, die mit C arbeiten müssen und nicht viel Erfahrung mit C und den C Strings haben. Der Kurs wird auch die korrekte Benutzung des dynamischen Speichers (malloc/free) vermitteln.
(Das Veranstaltungsprofil kann nur von Kursleitern geändert werden; dazu bitte einloggen.)
Teilnehmer
- NicolaSheldrick
- Steffen Brennscheidt
- MatthiasHeizmann
- MarkusDobler
- ChristophBetz
- MichaelMeier
Die Teilnehmerzahl dieser Veranstaltung ist auf 10 Personen beschränkt. Bei Überbelegung bilden die in rot dargestellten Personen die Warteliste.
Die Veranstaltung findet nur statt, sofern sich mindestens 1 Person anmeldet.
Um Dich für diesen Kurs anzumelden, musst Du Dich zunächst beim Sommercampus-Wiki einloggen.
Detailliertes Kursprogramm
Achtung: Der Kursinhalt und die Kursstruktur kann sich jeder Zeit ändern (z.B. manche Themen können an anderen Tagen gehalten werden oder neue Themen werden hinzugefügt).
Dieser Kurs vermittelt die richtige Benutzung der String Funktionen und des dynamischen Speichers (malloc/free) unter C. Für C Anfänger ist es besonders verwirrend, wenn man mit den C Strings arbeiten muss, die Folge ist eine Menge Bugs, segmentation faults oder gar nicht kompilierte Sources.
Obwohl C mittlerweile von C++ oder anderen objektorientierten Sprachen (wie Java) nach und nach verdrängt wird, hat man manchmal keine andere Wahl als C zu benutzen. C wird vor allem in der Unix Systemprogrammierung oder Hardware Programmierung benutzt.
C hat "mehr Macht" über den Speicher als andere Sprachen, da man sehr nah am Speicher arbeiten kann, aber mit der Macht kommt auch die Verantwortung und wenn man nicht sorgfältig mit dem (dynamischen/freien) Speicher umgeht, kann das zu einer Quelle von Bugs und Problemen führen, die schwer herauszufinden sind. Deswegen ist es notwendig die Gundlagen genau zu verstehen, um sichere Anwendungen zu schreiben, die weder Speicher verschwenden noch schlimme Bugs enthalten. Gerade für Hardware Programmierer ist das wichtig, damit man sichere Software für die Hardware schreiben kann.
Sprachen wie C++/Java/C#/usw. haben bequeme Klassen zur String Behandlung, C dagegen nicht. Für C Einsteiger kann es deswegen sehr schwer sein, weil man mit den Strings anders umgehen muss, als man es gewohnt ist. Dieser Kurs geht speziell auf die richtige Verwendung der C Strings und des dynamischen Speichers ein. Am Ende des Kurses werden wir eine kleine Bibliothek schreiben, die die Arbeit mit den C Strings erleichtern wird. Der Kurs ist in 3 Tagen unterteilt.
Wir werden mit ANSI C arbeiten, das bedeutet, dass der Inhalt dieses Kurses Betriebsystem-unabhängig ist und die Beispiele und Übungen sowohl unter Windows als auch unter einem Unix Derivat kompiliert werden können. Im Kurs werde ich aber die Beispiele mit dem
GNU GCC kompilieren.
Themen
1. Tag
Grundlagen der Programmierung in C
Syntax der C Sprache
Unterteilung von Code in Funktionen
Unterteilung von Code in Dateien
Zeiger & Arrays
Speicherverwaltung I (dynamischen Speicher mittels malloc/free benutzen)
2. Tag
Inside of string.h: Wie benutzt man die C Strings Funktionen?
Richtig mit C Strings arbeiten
Speicherverwaltung II (memcpy, memmove, usw)
3. Tag
Praxis: Entwurf einer simplen Bibliothek zur sicheren Behandlung von Strings
Dokumente
1. Tag
Folien Tag 1 (Aktualisiert)
2. Tag
Folien Tag 2 (Aktualisiert)
3. Tag
Projekt sc_strings
Linker Option -lsc_strings für den GNU GCC Compiler