質問: ### 前提・実現したいこと c言語についての質問です。 実行時にリダイレクトでファイルの内容を出力するプログラムを書きました。 動的メモリの確保を使ってみたのですが 5 abcde 20 how-is-your-progress Aborted (コアダンプ) のようにエラーが出て正常に動きません。どこが間違っているのでしょうか? ### 発生している問題・エラーメッセージ ``` 5 abcde 20 how-is-your-progress Aborted (コアダンプ) ``` ### 該当のソースコード ``` #include #include int main(void) { int n; char *str; while(scanf("%d %s",&n,str=(char*)malloc(sizeof(char)*(n+1)) )!=EOF){ printf("%d %s\n",n,str); free(str); } return 0; } ```
回答: `n`に値が設定されないうちに参照されています。 また、`scanf`で文字列長が指定されていません。