実行時に任意のサイズの整数のセットを入力として使用するプログラムを作成する必要があります。それらは空白で区切られます。最後に、新しい行が与えられ、入力の終了を示します。後でそれらを表示できるように、整数の配列にそれらを保存するにはどうすればいいですか?コンパイル時に入力される値の数が分からないので少し難しいと思う。実行時に値を入力して実行中に表示する
答えて
宿題のような音。
私が間違っている場合は私を修正し、私はあなたにヒント以上のものを提供します。
ユーザー入力によっては埋められないような、本当に大きなサイズの配列を宣言してから、scanfなどを使って '\ n'にヒットするまで整数を取得するか、 malloc呼び出しとmemcpy呼び出しの組み合わせを使用して、一度に整数で、あなたが行くにつれてメモリを割り当てます。最初の選択肢は実際の世界の問題で決して行なわれるべきではありません。あなたの教科書があなたにこのようにすると言っているにもかかわらず、私は確かにそのような習慣を主張していません。
これは、あなたが解決策は、通常2つの選択肢の一つであるC.にあります典型的な問題であるだけでK & R.
でこのような例があります。
入力を保持するのに十分な大きさの大きな配列を使用します。データが本当に大きくなる可能性がある場合、これは貧弱な選択肢となることがあります。たとえば、ビデオフレームや大きなテキストファイルをアレイに保存するときなど、悪い考えがあります。これにより、古いバージョンのWindowsでバッファオーバーラン攻撃が可能になります。しかし、これは時には、1000文字を入力しないようにユーザー(つまり、あなたのプログラムを壊そうとしていないあなたの教授)に頼ることができる、より小さな(宿題)プログラムのための良い速いハック解決策です。通常、これは悪い習慣とみなされます。私が前に述べたセキュリティ上の理由で私の第2の選択肢を考えてください。
ダイナミックアレイ(つまり、malloc)を使用します。これはおそらく、あなたの教授が、学生がポインタと配列を最初に学習しているときに使用する典型的な問題のように聞こえるからです。これは素晴らしいアプローチです。終了したら、あなたの記憶を無料で呼び出すことを忘れないでください。ここでのトリッキーな部分は、あなたがまだ必要な配列のサイズを知っていなければならないということです(もちろん、コンパイル時ではありません)。
- 1. JSF - 実行時に値を入力する
- 2. 実行時に入力列挙型
- 3. Linuxですでに実行中のプロセスの出力を表示
- 4. メソッドの実行中にメッセージを表示
- 5. javascript/jquery/phpのhttpリクエスト(長時間実行)実行中に "進行中"を表示
- 6. 実行時に非表示のDataGridView列にデフォルト値を入力する方法はありますか?
- 7. 実行開始時にポップアップを表示
- 8. スクリプトの実行中に時計を表示
- 9. 実行時に実行中のwhileループを終了する
- 10. 実行時にグリッドビューにデータを入力する
- 11. 実行時にshell_execを出力する
- 12. コードの実行中に他の入力を無視する
- 13. 実行時にユーザー生成SQLを介してデータを表示
- 14. 実行時にweb.configに値を代入する
- 15. Cで実行時にdatagridviewセルに値を代入する#
- 16. Windowsでスクリプトを実行中にコンソールを非表示にする
- 17. App SDK:クエリ実行時に入力ストリームを解析するErorr
- 18. 実行時にScalaコードをコンパイルして実行する
- 19. メソッドがWindowsアプリケーションで実行中に進行状況を表示
- 20. を選択し、デフォルト値、実行時に
- 21. MySQL - クエリ出力を無効にし、合計実行時間のみを表示
- 22. クライアントサイドスクリプトの実行中にGIFイメージを表示する
- 23. 実行中にコードエラーを表示する方法
- 24. SQLクエリの実行中にプログレスバーを表示する
- 25. logstashをサービスとして実行し、標準出力を表示
- 26. 実行時エラーJest実行中:反応中
- 27. 実行時にwxPanelを表示/非表示にする方法は?
- 28. シェフを使用してinstalligパッケージを実行する際の実行時の値
- 29. QTestLibは、実行中にテストしているGUIを表示できますか?
- 30. 実行時に設定値を作成して保持する
「ミッションクリティカルな高セキュリティアプリケーションでその1度になるまでは、ユーザー入力で埋めることはできません」...ユーザーに神を期待するよりも安全な(r)あなたを驚かせることはありません。 @peachykeen。 – ssube
私たちはミッションクリティカルなハイセキュリティなアプリケーションについて話しているわけではありません。私たちは宿題の問題について話しています。プログラマーがこれをやる時間はたくさんあります。私は何度読んだのかは分かりません:char buffer [1000]; memset(バッファ、 '\ 0'、1000);他の(よく知られた)プログラムで、前にユーザーの入力を受け取ります。 –
もちろん、あなたはそうすることができます、そして、人々は持っています、そして、この場合、NASAで実行されませんが、*実践を永続させる理由は絶対にありません。実生活でそれを悪用すると、全体的なバグ(バッファオーバーラン)が発生し、その中には実際のセキュリティの影響があります。 – ssube