#include <www.pronix.de>

Home

 Programmieren
C-Programmieren
Perl
CGI

 Bücher
C von A bis Z
+ Compiler
+ Listings
+ Aufgaben
+ Links
+ Updates
C M&T easy
Rezensionen

 Service
Links
Feedback
Mailingliste
Newsletter

 Sonstiges
FAQ
Impressum
 

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?








 

 

© 2000 - 2003 Jürgen Wolf