サーバダウン / 動的配列の実装あれこれ / C/C++はconst/enumがいい

投稿日: 2004年10月14月
更新日: 2017年07月22月

サーバダウン

今回は復旧が遅れてしまって、丸2日ほどダウン。いい加減このパソコン、というかHDDが限界かも。

一応熱を冷ましてから起動したら復活したので安心・・・はできないけどとりあえずOK。

今のところWebサービス自体は2台構成で、バックエンドのファイルサーバ(NFS)とフロントエンドのApacheサーバにわかれてるんだけども、フロントエンド側が熱を持ちやすいマシンなのでしょっちゅう落ちる。今回はディスプレイを閉めて木のラックに収めたのが原因。熱が逃げない上に木が保温性を発揮してフリーズ。

バックエンド側はRAID構成+UPSでほぼ常時稼動が可能だからこっち一本にしても良いかも。将来を見越してフロントエンド側をディスクレスマシンにしてもう1台追加しようと思ってたけど最近そんな余裕もないし。

動的配列の実装あれこれ

C言語でint型の動的配列を作るとするとデータ構造は

int* array;     // 配列先頭ポインタ
int  array_cnt; // 配列サイズ
int  array_max; // 配列確保数

こんな感じ。これだと管理しづらいので構造体にしてみたりする。

struct Array{
  int* data;
  int  cnt;
  int  max;
};

これらに要素を追加するときはreallocする。

C++だとまずはclass化してみる。

class Array
{
public:
  int* data;
  int  cnt;
  int  max;
};

必要なメソッドを追加してみる

class Array
{
private:
  int* data;
  int  cnt;
  int  max;
public:
  int  GetSize() const;
  bool SetSize(int);
  int  Get(int) const;
  bool Add(int);
};

飲んでるのでこの辺で。テンプレート化とか実際のAddの方法とかAllocateはmalloc/reallocかnew/deleteかとかCArrayの実装がどうとか次回。(覚えてたら)

C/C++はconst/enumがいい

名前:宮内 はじめ

Code for Nagoya名誉代表

E2D3名古屋支部長

プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。

プロフィール

お問い合わせ