質問: ### 前提・実現したいこと 今、arduinoで時間を何回か測り、測った時間の平均値と標準偏差を出すプログラムを作っています そのため測った時間を保存しておくために配列を使いたいと思っています しかし、c言語にはpythonのappendみたいな機能がないのでつまずいています 測るたびに追加したいのですができません なにか良い方法があったら教えていただきたいです 配列ではない方法でもかまわないです 参考コードもなくて申し訳ないです ### 補足情報(言語/FW/ツール等のバージョンなど) arduino
回答: 本格的にやるとなると、下記サイトにあるようなデータ構造を利用することになると思います。 実際に使うとすると連結リストあたりでしょうか。 実装サンプルなど。 arduinoを使ったことはありませんが、ざっと調べた感じだとメモリが豊富に搭載されているわけではなさそうですね。 データ構造を実装しようとすると、管理用のデータもありますから余計にメモリを使うことになります。 例えば前述の連結リストですと、1つあたりのノードの構造は void *prev; time_t t; void *next; のような感じになり、時間データだけのときより3倍も多くなります。 私としては、動的なデータ構造を実装するよりかは、上限を決めて配列を確保するほうがよいのではと思います。 どっちみちメモリの上限があるので、柔軟な作りにして余計なメモリ・管理用の処理の作り込みをするよりかは、固定個数の配列の方がよいという判断です。 どれくらいの回数、データを収集するのかはわかりませんが、収集間隔(秒)、実行時間から決められると思います。 そこから得られた個数で決めてしまって良いと思います。 結果、メモリに載らないとなった場合、動的なデータ構造を実装した場合でも同じ結果になりかねないですし。 (補足:使用するメモリ領域は配列の場合(静的orスタック領域)と動的な場合(ヒープ領域)で異なると思いますが、絶対的なメモリ量はさほど変わらないのではと思います)