Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/Arrayuebergabe: Unterschied zwischen den Versionen

(nion - eine aufgabe konzipiert, musterlösung liegt bereit)
 
(Aufgabenstellung)
Zeile 1: Zeile 1:
 
=== Aufgabenstellung ===
 
=== Aufgabenstellung ===
Schreibe ein Programm, per Konsolenoption die Größe eines Arrays für Integer-Werte angegeben bekommt. Das Programm soll anschließend
+
Schreibe ein Programm, per Konsolenparameter die Größe eines Arrays für Integer-Werte angegeben bekommt. Das Programm soll anschließend
 
Speicher auf dem Heap allozieren und diesen als Array verwenden, um Integer-Werte zu speichern. In diesem Array soll anschließend der Größte Wert gefunden und angezeigt werden.
 
Speicher auf dem Heap allozieren und diesen als Array verwenden, um Integer-Werte zu speichern. In diesem Array soll anschließend der Größte Wert gefunden und angezeigt werden.
  

Version vom 14. September 2009, 21:06 Uhr

Aufgabenstellung

Schreibe ein Programm, per Konsolenparameter die Größe eines Arrays für Integer-Werte angegeben bekommt. Das Programm soll anschließend Speicher auf dem Heap allozieren und diesen als Array verwenden, um Integer-Werte zu speichern. In diesem Array soll anschließend der Größte Wert gefunden und angezeigt werden.

Vorgehensweise

  1. Lese das erste Kommandozeilenargument und alloziere einen entsprechend Großen Buffer
  2. Achte dabei möglichst auf Fehlerbehandlung bei falschen Größen
  3. Lese n Integer-Werte von der Standardeingabe und speicher diese im vorher allozierten Buffer
  4. Übergebe das Array an eine Funktion find_max, die den größten Wert zurückgeben soll
  5. Suche den maximalen Wert mit Pointerarithmetik (keine direkte Indexaddressierung bei Vergleichen)

Achtung: Sinn der Aufgabe ist das Verinnerlichen von Pointern, ihr könnt in C nicht wie in anderen Sprachen einfach ein Array als Argument übergeben, stattdessen müsst ihr auf Pointer zurückgreifen.