C言語プロジェクト - 開発ストーリー
2年生の前期の授業の課題として作成したC言語を用いたプログラム
なぜ作ろうと思ったか?
2年生の前期の授業の課題として作成しました。
何の技術で?
C言語、Linuxを使用しました。
困難は?
まず、今までPythonを軽く触れたことしかなかった私にはC言語のすべてが難しかったです。 なかでもポインタの理解に苦しみました。Pythonなどでは知らなくてもプログラムは作れますが、 C言語ではポインタの概念を学ぶことからスタートしなければなりませんでした。
その後、ぶつかったのがメモリ管理です。このプログラムは1万のデータを管理することを前提としているため、 メモリの解放をその都度行わなければならず、知らずにエラーがたびたび発生していました。
また、このプログラムではソートを実装しましたが、C言語の配列操作でソートを実装するのは難しかったです。 Pythonではそのまま入れ替えればよいものを、C言語ではswap関数を用意して入れ替えなければなりませんでした。 さらに、標準入力からのデータ取得にも頭を悩ませました。
学んだこと
- 低レベルのプログラムの理解が深まった。
- ポインタについて。関数の中から関数の外の変数の内容を書き換えることができるようになり、 便利だと思った。Pythonでは関数内で配列を操作したときだけ関数外でも変わるのはポインタの操作があるからと理解できた。
- データ構造について。各データのメモリや構造を学び、文字列が文字の配列であることや構造体というオブジェクトの発想につながる基本的だが重要なことを学べた。
こだわりポイント
このプログラムでは、すべて関数として管理しており、見やすく拡張しやすい設計にしています。また、1万の大量のデータを扱うことを想定して作成しました。レポートも作成しているので、GitHubから合わせてご覧ください。