2022-03-08
Max. 24 points
Name:
Task | Max. | Achieved |
---|---|---|
1 | 2 | |
2 | 10 | |
3 | 6 | |
4 | 6 | |
Sum | 24 |
Aussage | Wahr | Falsch |
---|---|---|
Dynamische Speicherverwaltung in C is notwendig, um den gesamten vorhandenen Hauptspeicher nutzen zu können. | ||
malloc(.) initialisiert den reservierten
Speicher mit Nullen. | ||
Der Rückgabewert von malloc(.) ist
ein void Pointer. | ||
calloc(.) initialisiert den reservierten
Speicher mit Nullen. |
int main()
ausgeführt und
alle notwendigen #include
s sind vorhanden.
Wenn das Snippet nicht kompilierbar ist oder zu einem Absturz führen würde,
so ist das Wort “ERROR” als Antwort zu geben.
Erzeugt das Snippet keinen Output (wenn beispielsweise kein
printf
oder dergleichen aufgerufen wird), so ist "-" als
richtige Antwort zu verwenden.
int a = 3;
int* ptr = &a;
*ptr += 4;
printf("%d\n", a);
int a = 3;
int* ptr = &a;
int** p = &ptr;
**p += **p;
printf("%d\n", a);
int array[] = {3, 3, 3, 3, 3};
int* array_ptr = array;
int count = sizeof(array) / sizeof(int);
int value = 0;
while (count--) {
value += *array_ptr++;
}
printf("%d\n", value);
char name[] = "Pat";
char* name_ptr = name;
while (*name_ptr) { // string ends with the `\0` character
printf("%c", *name_ptr);
name_ptr++;
}
printf("\n");
TreeNode
in den ersten
beiden Zeilen ist gültiges C.
typedef struct treenode TreeNode;
struct treenode {int value; TreeNode *left; TreeNode *right;};
TreeNode *node = malloc(sizeof(TreeNode));
node->value = 123; node->left=NULL; node->right=NULL;
printf("%d\n", node->value);
int *range(int start, int stop);
welche einen Pointer zu einem
Array mit aufsteigenden Zahlen zurück gibt. Der erste Wert des Arrays ist
start
, der letzte stop - 1
. Die Anzahl der
Elemente ist dementsprechend stop - start
. Zum Beispiel gibt
der Aufruf range(3, 8)
einen Pointer zu folgendem Array
zurück: {3, 4, 5, 6, 7}
.
int *range(int start, int stop) {
int *array = malloc((stop - start) * sizeof(int));
for (int i = 0; i < stop - start; ++i) {
array[i] = start + i;
}
return array;
}
Resistor
, welcher folgende
Eigenschaften speichert: unsigned int resistance
,
unsigned int max_voltage
,
float tolerance
und
char type[50]
.
typedef struct resistor Resistor;
struct resistor {
char type[50];
unsigned int resistance;
float tolerance;
unsigned int max_voltage;
};