質問: ``` //C言語ワードパッド #include void main() { char a,b[100]; printf("100文字以内で昨日の日記を書いてください。"); scanf("%s", a); printf("100文字以内で今日の日記を書いてください。"); scanf("%s", b); printf("昨日の日記:%s", a); printf("今日の日記:%s", b); } ``` 学習のため、C言語で日記のプログラムを書いたのですが、 エラーが出ます。visual studio 2017 で写真のようなものです。 調べても説明がよくわからなかったので質問しました。![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/2c0d7271856a46490ebb7bd9544411dc.jpeg) また、今自分はC言語を学習していますが、 visual studioのC++のものを使っています。 上記のエラーは、C言語とC++の文法の違いによるものでしょうか? 同じようなエラーが多数あるので、それについても教えてください。
回答: > > > ``` > char a,b[100]; > ``` > > このうち、配列として確保されているのはbだけです。 次のように宣言しないといけません。 ``` char a[100], b[100]; ``` 基礎の部分をしっかり固めるようにしてください。 > > visual studioのC++のものを使っています。 > > 上記のエラーは、C言語とC++の文法の違いによるものでしょうか? > > > エラーはVS側が気を利かせて出しているだけかと。 初期化されていない変数aの値をアドレスとして利用しようとしているのを警告しています。