C-Kurs/Arrayuebergabe/Musterlösung
< C-Kurs | Arrayuebergabe(Weitergeleitet von Ckurs/Arrayuebergabe/Musterlösung)
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <limits.h> void help(char *error){ printf("%s\n", error); exit(EXIT_FAILURE); } int find_max(int *arr, size_t size){ int max = 0; size_t i; for(i = 0; i < size; i++){ if(*(arr + i) > max) max = *(arr + i); } return max; } int main(int argc, char **argv){ size_t size = 0; int *arr = NULL; size_t c; if(argc < 2) help("Es fehlt die Groess des Arrays"); size = strtol(argv[1], NULL, 10); if(0 == size || UINT_MAX / sizeof(int) < size) help("alles ausser positive natuerliche Zahlen im Bereich 0 - n*sizeof(int) <= SIZE_MAX sind ungueltig"); if(NULL == (arr = malloc(sizeof(int) * size))){ perror("malloc()"); help("Fehler beim Speicherallozieren"); } for(c = 0; c < size; c++){ printf("%4d Integer Wert bitte eingeben: ", (int)c); scanf("%d", &arr[c]); } printf("Der groesste Wert im Array ist: %d\n", find_max(arr, size)); free(arr); return 0; }