Otto: C/C++: free -> Fehler

Beitrag lesen

Hi Tina,

char b=0;
       char *a;
       a=(char*) malloc(b);
       free(anfang)

du hast ja schon einige Tipps bekommen.
Die dynamische Speicherbeschaffung ist eine tolle Sache, jedoch sollte man dort auch sehr defensiv programmieren. Es kann viel schief gehen, wie du gemerkt hast.

  1. Sollten Zeiger immer mit NULL inisaliziert werden
    also char *a = NULL;

  2. Die Speicherbeschaffung kann schief gehen, also immer prüfen
    a=(char*) malloc(b);
    if ( a == NULL ){
     exit(EXIT_FAILURE);
    }

MfG
Otto