ポインタと配列と構造体の三点セットを使えば、ありとあらゆるデータ構造を実現できるでしょう。
Dim ppp As **Byte
これでpppはダブルポインタになります。ポインタのポインタってこと。
ppp = calloc(SizeOf(*Byte) * ARRAY_MAX)
これでARRAY_MAX個のポインタ配列ができる。
つまりDim app[ELM(ARRAY_MAX)] As *Byteと同じ。
ppp[0]="平井公彦"
ppp[1]="〒106-0032, 東京都港区六本木"
ppp[2]="j"
ppp[3]=0
こんな感じでリテラルを突っ込んだり
ppp[4]=malloc(5000)
のように動的配列をつくったり、その使い方は無限大!

配列のポインタ

上の例はポインタの配列。今からやるのは配列のポインタ。

type sar
	sq[127] As Byte
End Type
ABでは宣言の時に配列を型として指定できない重大な欠陥があるので、構造体として誤魔化します。
Dim tpp As *sar
こうやって
tpp = calloc(SizeOf(sar) * 87)
で87個の128バイトの固定長レコードを生成することができる。
使うときはもちろん
lstrcpy(tpp[0].sq, "平井公彦")
だったり
tpp[0].sq[0]=&hF8
というようにする。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年02月12日 18:23