e471.c

引数にNULLポインタが渡る可能性有り


原作: static void NG() { int errflg = 0; char * cp = malloc(100); if(cp == NULL) { errflg = 1; } if(errflg == 0) { strcpy(cp , "no good"); } }
修正案: static void ok() { char * cp = malloc(100); if(cp == NULL) { return; } strcpy(cp , "good"); }

解説: フラグ変数を使用した場合は、正しいコードに対しても警告を発します。 極力フラグ変数を使用しない事を推奨します。