Das Buch für Anfänger zur C Programmierung unter Linux und MS Windows, Einstieg in C Jürgen Wolf C C++ C/C++ Programmieren Linux ANSI C Standard C C99 Einstieg in C Buch Bücher Einstieg in C - C Kurs Programmieren C/C++ Tutorial Aufgaben zum Kapitel 26
  1. Ein Programmierer hat dieses zwar syntaktisch richtige Programm erstellt, doch weist es einige Sicherheitslücken auf. Machen Sie das Programm sicherer.

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
     char name[10];
     char copy[10];
    
     printf("Dein Vorname : ");
     gets(name);
    
     strcpy(copy, name);
    
     printf("Orginal: %s Kopie: %s\n",name, copy);
     return 0;
    }
  2. Bei diesem Beispiel wurde ein klassischer aber häufig nicht gleich bemerkter Fehler gemacht.

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main()
    {
     char *string = "Hallo Welt";
     char *copy;
    
     /* String kopieren */
     copy = (char *)malloc(strlen(string));
     if(copy == NULL)
        {
           printf("Speichermangel...\n");
           exit(0);
        }
     strcpy(copy, string);
    
     printf("Orginal: %s\n",string);
     printf("Kopie  : %s\n",copy);
     getchar();
     return 0;
    }
  3. Würden Sie in diesem Listing von einer Gefahr ausgehen? Wenn ja welcher?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
     int i;
     char *heap;
    
     printf("Wieviel Speicherplatz benötigen Sie: ");
     scanf("%4d",&i);
    
     heap = (char *)malloc(i);
     if(NULL == heap) exit(0);
     return 0;
    }
  4. Was ist ein Memory Leak?