ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 01:19

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2010年3月11日(木) 07:44 
AB4.24.00で構造体の可変長配列を使いたいのですが、いくつかの方法を試して失敗しました。
どうすればいいか教えてください。
ちなみに固定長配列は成功しました。


通報する
ページトップ
   
投稿記事Posted: 2010年3月12日(金) 15:31 
> AB4.24.00で構造体の可変長配列を使いたいのですが、いくつかの方法を試して失敗しました。
具体的にどんな方法をためしたの?


> どうすればいいか教えてください。
これが質問をする態度ですか?
ここは学校ではないし、誰もあなたをサポートする義務もありません。
何から何まで教えてもらう、否、他人を使おうとする態度はいただけません。


> ちなみに固定長配列は成功しました。
どうでもいい情報はいりません。


通報する
ページトップ
   
投稿記事Posted: 2010年3月13日(土) 15:05 
すいませんでした。
>具体的にどんな方法をためしたの?


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2010年3月13日(土) 16:39 
可変長配列っていうから
Type
str[0] As Byte
End Type
みたいなのを想像しちゃったよ。

幾つかの方法って2種類なんですね。試行錯誤もしないでよく言えたものです。
あなたのコードだけどこりゃひどい。
プログラムやってるんだからコンパイル通らないなら
エラーをよく読んでその意味を理解して欲しいんだけどね。

ポインタについてどれだけ理解しているのか…
.と->と[]の違いがよく分かってないんだね。

->は[0].と同じ意味を持つのね。
だからa->bはa[0].bと同じ。

ほかにも突っ込みどころが多すぎてあれなんだけど、答えを示すと
コード:
#N88BASIC
Type TEST
    tesuto1 As Long
    tesuto2[7] As Byte
End Type

Dim testarr As *TEST
testarr = calloc(3 * SizeOf(TEST))

testarr[0].tesuto1=1
lstrcpy(testarr[0].tesuto2, "test1")

testarr[1].tesuto1=2
lstrcpy(testarr[1].tesuto2, "test2")

testarr[2].tesuto1=3
lstrcpy(testarr[2].tesuto2, "test3")

Dim i As Long
For i=0 To 2
	Print testarr.tesuto1, MakeStr(testarr.tesuto2)
Next

これがみけCATさんのやりたい事だと思うのですがどうでしょうか。


通報する
ページトップ
   
投稿記事Posted: 2010年3月14日(日) 08:00 
あなたのコードでうまく動きました。
ありがとうございました。
失礼があったことを深くお詫びいたします。
申し訳ございませんでした。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[16人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean