Kurs: C-Programmierung

Zeiger, Speicherverwaltung und sicheres C

Kostenloser Online-Kurs · Anfänger · 8 Einheiten

Du lernst C von Datentypen und Programmablauf über Funktionen, Arrays, Zeichenketten und Zeiger bis zu dynamischem Speicher, Strukturen und Dateizugriff und schreibst mit Debuggern und Sanitizern sichereren Code. Danach kannst du kleine C-Programme schreiben, debuggen und über Speicher nachdenken.

Von Studeli

Mit Einheit 1 starten

Ist dieser C-Programmierung-Kurs etwas für dich?

Für wen

Du willst verstehen, wie Programme Speicher und Hardware nutzen, oder dein Studium (Ingenieurwesen, eingebettete Systeme, Betriebssysteme) setzt C ein.

Was du in 8 Einheiten lernst

Jede Einheit enthält alle neun Lernwerkzeuge

  • Lernleitfaden
  • Zusammenfassung
  • Interaktive Lektionen
  • Übungsfragen
  • Karteikarten
  • Erklär Es
  • Schlüsselbegriffe
  • Lernzettel
  • Konzeptkarte
  1. Kompiliere C-Programme und führe sie aus, deklariere Variablen der grundlegenden Datentypen und steuere den Programmablauf mit Bedingungen und Schleifen.

    6 Lernziele
    1. 1.C-Programme erstellen und ausführen
    2. 2.Daten in Variablen der grundlegenden Datentypen speichern
    3. 3.Mit printf Ausgaben anzeigen und mit scanf Eingaben lesen
    4. 4.Mit Operatoren und Ausdrücken rechnen
    5. 5.Den Programmablauf mit Bedingungen und Schleifen steuern
    6. 6.Ganzzahlüberläufe erkennen und verhindern
  2. Schreibe Funktionen mit Prototypen, teile Programme auf Quell- und Headerdateien auf und erstelle sie mit dem Präprozessor und make.

    5 Lernziele
    1. 1.Funktionen schreiben, deklarieren und aufrufen
    2. 2.Die Sichtbarkeit und Lebensdauer von Variablen steuern
    3. 3.Den C-Präprozessor verwenden
    4. 4.Ein Programm auf Quell- und Headerdateien aufteilen
    5. 5.Programme aus mehreren Dateien mit make erstellen
  3. Arbeite mit Arrays und nullterminierten Zeichenketten, verarbeite Kommandozeilenargumente und vermeide Zugriffe außerhalb der Speichergrenzen.

    6 Lernziele
    1. 1.Wertesammlungen in Arrays speichern und verarbeiten
    2. 2.Text mit Zeichen und nullterminierten Zeichenketten darstellen
    3. 3.Die Standardfunktionen für Zeichenketten verwenden
    4. 4.Daten in mehrdimensionalen Arrays organisieren
    5. 5.Kommandozeilenargumente verarbeiten
    6. 6.Zugriffe außerhalb der Speichergrenzen und Pufferüberläufe verhindern
  4. Übergib Daten mit Zeigern als Referenz, durchlaufe Arrays mit Zeigerarithmetik und erkläre, wie Variablen im Speicher angeordnet sind.

    5 Lernziele
    1. 1.Speicher, Adressen und Zeigervariablen verstehen
    2. 2.Funktionen über Zeiger Zugriff auf Daten geben
    3. 3.Mit Zeigerarithmetik durch Arrays navigieren
    4. 4.Mit Zeigern auf Zeiger arbeiten
    5. 5.Funktionszeiger und Rückruffunktionen verwenden
  5. Reserviere Speicher auf dem Heap und gib ihn wieder frei, ändere die Größe von Puffern und finde Speicherlecks und ungültige Zugriffe mit Werkzeugen zur Speicherprüfung.

    5 Lernziele
    1. 1.Erklären, wo ein C-Programm seine Daten speichert
    2. 2.Heap-Speicher reservieren und freigeben
    3. 3.Die Größe von Puffern mit realloc ändern
    4. 4.Speicherfehler erkennen und verhindern
    5. 5.Speicherfehler mit Valgrind und Sanitizern finden
  6. Definiere Strukturen und Aufzählungstypen und baue verkettete Listen, Stapel, Warteschlangen, Bäume und Hashtabellen aus dynamisch allokierten Knoten auf.

    6 Lernziele
    1. 1.Zusammengehörige Daten in Strukturen zusammenfassen
    2. 2.Auswahlmöglichkeiten mit Aufzählungstypen benennen und Speicher mit Unions gemeinsam nutzen
    3. 3.Verkettete Listen aufbauen und verwalten
    4. 4.Stapel und Warteschlangen implementieren
    5. 5.Binärbäume aufbauen und durchlaufen
    6. 6.Schlüssel in Hashtabellen speichern und nachschlagen
  7. Lies und schreibe Text- und Binärdateien mit der Standardbibliothek für Ein- und Ausgabe und behandle Fehler robust.

    5 Lernziele
    1. 1.Dateien als Datenströme öffnen und Programme mit ihren Ein- und Ausgabekanälen verbinden
    2. 2.Textdateien lesen und schreiben
    3. 3.Daten in Binärdateien speichern und daraus laden
    4. 4.Beliebige Positionen in einer Datei ansteuern
    5. 5.Dateifehler erkennen, melden und behandeln
  8. Suche Fehler in C-Programmen mit einem Debugger und Compilerwarnungen, erkenne undefiniertes Verhalten und wende Vorgehensweisen an, die C-Code sicherer machen.

    5 Lernziele
    1. 1.Den Compiler zur Fehlersuche nutzen
    2. 2.Programmfehler mit einem Debugger finden und beheben
    3. 3.Undefiniertes Verhalten erkennen und vermeiden
    4. 4.Fehler zur Laufzeit mit Zusicherungen und Sanitizern erkennen
    5. 5.Sichereren C-Code schreiben
Weiter: Betriebssysteme – Prozesse, Speicher, Threads und Dateisysteme (Mittel)

Du kannst in C programmieren (oder bist bereit, C-Beispiele zu lesen) und willst Prozesse, Speicher, Nebenläufigkeit und Dateisysteme aus Sicht des Betriebssystems verstehen.

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten