「Cプログラミングでよくあるエラー」の編集履歴(バックアップ)一覧に戻る

Cプログラミングでよくあるエラー - (2008/01/11 (金) 21:05:50) のソース

*scanfでアドレスを渡していない
 int a;
 scanf("%d",a);

*scanfでchar配列名のアドレスを渡している
 char str[64];
 scanf("%s",&str)

*条件分なのに「==」じゃなくて「=」を使って代入をしてしまう
 int a=5;
 if(a=5){...

*printfでフォーマットが間違っている
 char *str="abcdefg";
 printf("%d",str);

*関数名が間違っている
 int i=10;
 pritnf("%d",i);

*文字列を入れる変数が配列になっていない
 char str;
 scanf("%s",str);
 
*用意した文字列の配列要素数を超えて文字列を書き込もうとしている
 char address[3]; //住所を入れるはずなのに!
 printf("input address of your home.");
 fgets(address,100,stdin);

-そもそもfgetsの第2引数はsizeof(address)にすべき。

*for文やwhile文で必要なループ回数を超えてまわしている

*初期値が設定されていないのにインクリメンタル演算子を使っている
 int i,count;
 for(i=0;i<10;i++){count++;}

*for文の後にセミコロンを書いてしまう
 for(i=0;i<10;i++);
   count++;
-10回分、空の文をまわしているだけになってしまう。

*「'」と「”」の間違い
 char a;
 a=getchar();
 if(a=="y"){...
-1文字の場合は「'」

* 文字列の比較で==を使う
 char *str1="abc";
 char *str2="cdf";
 if(str1==str2){...
-こういうときは
 if(strcmp(str1,str2)==0)
とする