VariableArray
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Variable Array ライブラリを作って失敗した話
-(by [[K]], 2017.10.24)
** (1) 起
-[[K]]はC言語が好きです。C++も好きだけど結局C言語が好きで...
-さてそのC言語ですが、不便なところが一つあります。それは...
-いやreallocを使えば変更はできます。reallocはすごいです。...
-当然なんだけど、でもオブジェクトの場所が変わっちゃうって...
-ということでこんなのを作りました。
typedef struct VA_ {
void *p;
int elementSize, n, n1; // n1はreallocしたサイズ(つ...
const char *nam;
} VA;
-このVA型のオブジェクトvaを作ってメモリのどこかにおいてお...
-pvaに対して、サイズを変更せよというのはとても簡単です。
VA_size(pva, n);
-みたいにすればいいのです。これでサイズが更新されます。n1...
-もしreallocに失敗したらstderrにエラーを出力してexit(1)し...
-さらにマージン付きの可変長をやめる関数も付けました。適切...
VA_sizeFix(pva, n);
-関数に配列を渡すときは、pを渡さずにpvaを渡すようにするの...
** (2) 承
-この可変長配列ライブラリ(VA)は大成功で、すごく便利にな...
-それがVAを使うことで、すごくメモリ効率が良くなりました。...
-VAライブラリでは、vaを初期化するときに VA_init(pva, elem...
-このデバッグ機能が最高で、メモリリークとかも簡単に見つけ...
-VAはただの可変長配列です。線形リストでも木構造でもないで...
** (3) 転
-ところが・・・問題が発覚します。
-VAの中にVAを置いておくことができないのです。いや、おいて...
-さあ困った。どうしましょう。・・・ということで、VAはあち...
-つまりこの新しいルールでは、ポインタは2つの整数の組で表...
** (4) 結
-これはOSASKでやっていたslot番号の仕組みにかなり似ていま...
-そしてこの方式では、VA型のオブジェクトはポインタ型の変数...
-ということで、これからslotライブラリを作ります。
-それにしても、整数2つでポインタを表現するって、まさにセ...
-ちなみにこの方式ではアプリは生のポインタを長期には保存し...
* こめんと欄
#comment
終了行:
* Variable Array ライブラリを作って失敗した話
-(by [[K]], 2017.10.24)
** (1) 起
-[[K]]はC言語が好きです。C++も好きだけど結局C言語が好きで...
-さてそのC言語ですが、不便なところが一つあります。それは...
-いやreallocを使えば変更はできます。reallocはすごいです。...
-当然なんだけど、でもオブジェクトの場所が変わっちゃうって...
-ということでこんなのを作りました。
typedef struct VA_ {
void *p;
int elementSize, n, n1; // n1はreallocしたサイズ(つ...
const char *nam;
} VA;
-このVA型のオブジェクトvaを作ってメモリのどこかにおいてお...
-pvaに対して、サイズを変更せよというのはとても簡単です。
VA_size(pva, n);
-みたいにすればいいのです。これでサイズが更新されます。n1...
-もしreallocに失敗したらstderrにエラーを出力してexit(1)し...
-さらにマージン付きの可変長をやめる関数も付けました。適切...
VA_sizeFix(pva, n);
-関数に配列を渡すときは、pを渡さずにpvaを渡すようにするの...
** (2) 承
-この可変長配列ライブラリ(VA)は大成功で、すごく便利にな...
-それがVAを使うことで、すごくメモリ効率が良くなりました。...
-VAライブラリでは、vaを初期化するときに VA_init(pva, elem...
-このデバッグ機能が最高で、メモリリークとかも簡単に見つけ...
-VAはただの可変長配列です。線形リストでも木構造でもないで...
** (3) 転
-ところが・・・問題が発覚します。
-VAの中にVAを置いておくことができないのです。いや、おいて...
-さあ困った。どうしましょう。・・・ということで、VAはあち...
-つまりこの新しいルールでは、ポインタは2つの整数の組で表...
** (4) 結
-これはOSASKでやっていたslot番号の仕組みにかなり似ていま...
-そしてこの方式では、VA型のオブジェクトはポインタ型の変数...
-ということで、これからslotライブラリを作ります。
-それにしても、整数2つでポインタを表現するって、まさにセ...
-ちなみにこの方式ではアプリは生のポインタを長期には保存し...
* こめんと欄
#comment
ページ名: