• 締切済み

構造体?二次元配列?

VisualBasicの本を見ていると、構造体という言葉で解説されていないようですが、二次元配列の事と思って良いのでしょうか。それともまた別の事ですか。 よろしくお願い致します。

  • burbe
  • お礼率35% (78/221)

みんなの回答

  • tomo_bu
  • ベストアンサー率25% (2/8)
回答No.2

質問にある様に、VisualBasicでも構造体はあります。 VisualBasicのバージョンにもよりますが、 一般的に、 構造体は、異なった型の変数をまとめ、二次元配列など、配列で宣言された変数は、同一の型のみです。 配列は、名前が同じの変数が複数ある訳です。 また、構造体の中に、配列を含めることも出来ますし、構造体の中にも構造体は可能です。いわゆる親子関係です。 VisualBasicは、オブジェクト指向の言語ですので、 構造体と言っても、純粋な構造体ではない為、本によっては「構造体」と呼ばないかも知れません。 また、構造体を発展したものが、クラスです。

  • jurarumin
  • ベストアンサー率34% (190/544)
回答No.1

構造体は、基本データ型をいくつか組み合わせた構造を持った型のことです。 例「Rect」と言う構造体の宣言 ※VB6以前 での使用方法です。 ●ユーザー定義型の宣言 Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ●構造体を使用する場合 ' 構造体型変数の宣言 Dim r As Rect ' 各メンバに値を設定する場合 r.Left = 0 r.Top = 0 r.Right = 320 r.Bottom = 240

burbe
質問者

お礼

ありがとうございました。

関連するQ&A

  • 構造体の中身の2次元配列をファイルに書き込むことができるのでしょうか?

    構造体の中身の2次元配列をファイルに書き込むことができるのでしょうか? 現在、入力したデータをファイルに保存するプログラムを作成しております。 fp = fopen(file_name, "wb"); fwrite( &save_data, sizeof(save_data_t), 1, fp ); このように構造体ごとファイルに書き込んでいるのですが、 fread()で読みだした時に、2次元配列が読み込まれていません。 (おそらく書き込み自体ができていなかったのだとおもいます。) どのようにすれば、構造体の中に含まれている 2次元配列を書き込むことができるのでしょうか? c言語初心者ですので、是非ともよろしくお願いします。 typedef struct Save_Data{ int s_num; char s_page[][260]; }save_data_t; save_data_t save_data;

  • 多次元配列の構造体の初期化

    タイトル通りです。やり方がわかりません。 構造体変数の初期化や多次元配列の初期化が載ってるページは多いのですが、コレだけは調べても解りませんでした。 typedef struct{ int flag; ~~~~~(略)~~~ }map_t; map_t map[64][64]; の後、map_t型のmap64*64の int flag全てに値を代入したいのですが 詳しいやり方が解りません。 int hensuu[3][3]={   {1,2,3},{4,5,6},{7,8,9} }; 普通の多次元配列みたいにmこんな感じでやりたいんですけど… 初心者でスミマセン。回答いただけたらありがたいです。

  • 2次元配列の配列

    VisualBasic.NETでプログラムを作っているのですが、2次元配列の配列で行き詰って困っています。 配列1~3を別に定義して、その2次元配列を配列Xという配列にひとまとめにしたいのですが、エラーが出てしまいます。 エラー内容は「配列初期化子の次元が少なすぎます」で、場所は配列Xの第1要素です。 配列1~3以降もどんどん配列を追加していく予定なので、なるべく以下の方法で書いていきたいのですが、解決法はないでしょうか? また、他にいい方法があればご教授ください。 ソースです。 ---------------------------------------- Public 配列1(,) As Integer = _ { _ {1, 1, 1}, _ {1, 1, 1}, _ {1, 1, 1}, _ {1, 1, 1} _ } Public 配列2(,) As Integer = _ { _ {2, 2, 2}, _ {2, 2, 2}, _ {2, 2, 2}, _ {2, 2, 2} _ } Public 配列3(,) As Integer = _ { _ {3, 3, 3}, _ {3, 3, 3}, _ {3, 3, 3}, _ {3, 3, 3} _ } Public 配列X(,)() As Integer = { _ 配列1, _     ←ここにエラーが出る 配列2, _ 配列3 _ } ---------------------------------------- 回答よろしくお願いします。

  • 構造体での2次元配列の宣言について

    構造体で2次元配列を初期化したいのですがうまくいきません。どうすればいいでしょうか? #include<stdio.h> struct student{ long gakusekino; char name[20]; char clas[5]; long age; }seito[10] = {2004001,"Aクン","sskk",20},        {2004001,"Bクン","ssdd",20}; /*下記はコンパイルが成功する例ですが上記の記述がうまくいかないしだいです。 struct student seito[10] = { {2004001,"Aクン","sskk",20},   {2004001,"Bクン","ssdd",20}; };

  • 動的に作成した構造体配列の中に、さらに動的に構造体配列を作るには?

    はじめまして。 この度、ちょっとした計算プログラムを作ることになったのですが、 タイトルにもありますように、 『動的に作成した構造体配列の中に、さらに動的に構造体配列を作る』 方法がわからずに困っています。 実際には下記のようにプログラムしたいのですが... ------------------------------------------------- 'a'の構造体の中に作られる'b'の配列数は、下記のように 'a'の配列の番号により違い、また'a'の配列数も最初の段階では未定です。 構造体'a'←配列数未定 構造体'b'←配列数未定 a[0]-----b[0]  |    b[1]  |    b[2]  | a[1]-----b[0]  |    b[1]  | a[2]-----b[0]  |    b[1]  .    b[2]  .    b[3]  . ------------------------------------------------- new演算子で'a'の配列は作れたのですが、その中の'b'の数の分だけ 配列を動的に作成する方法がわかりませんでした。 最初は'b'の配列を多めに取って計算すればよいと思っていましたが、 計算過程で'b'の配列数が10000を越えてしまう場合があり、 また'b'の構造体のサイズも大きめなので、断念せざるをえませんでした。 どなたか、このように配列を作成する方法を知っている方がいましたら、 是非教えていただきたいです。 下手な説明ですいません。

  • C#で構造体の配列を持った構造体を使いたいのですが

    C#で構造体の配列を持った構造体を使いたいのですが Cならば struct xyz { struct abc _abc[32]; int index; }; struct abc { int a; int b; int c; }; struct xyz _xyz[8]; xyz[0]._abc[3].b = 1; のような使い方で という感じで やっていた事を C#で 同じような事をやろうとしても うまくいきません うまくやる方法をどなたかご存知ないでしょうか Visual Studio 2005行った場合 コンパイルで 構文エラーです。不適切な配列の宣言子です。マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。固定サイズ バッファ フィールドを宣言するには、フィールド型の前に fixed キーワードを使用します となり fixed をつけると 固定サイズ バッファの型は次のうちの 1 つでなければなりません: bool、byte、short、int、long、char、sbyte、ushort、uint、ulong、float または double となってしまいます

  • 3次元配列について!!

    本をみても例とかあまり載ってないから、vbで3次元配列はできるのか、できるのであればその方法も教えてください。

  • Ruby1.9で、グローバル参照可能な(クラス間で参照可能)構造体の2

    Ruby1.9で、グローバル参照可能な(クラス間で参照可能)構造体の2次元配列の定義方法が分かりません。 色々と文献を読んでいますが、 ・構造体や配列をグローバル参照可能にする定義 ・2次元配列の定義の方法 について、見つけきれておりません。 どうか、ご教示の程お願いいたします。 投稿日時 - 2010-08-04 21:49:17

  • 構造体配列の並べ替え

    いつもお世話になっております。 VB6で構造体の配列をソートしたいと考えています。 具体的やりかたは調べたいと思うのですが、ヒントとしてひとつ教えてほしいことがありまして質問させていただきました。 たとえば 名前(string) 身長(integer) 体重(single) 何人分かを仮にprofileという名の構造体に入れて、普通の配列と同じ様に体重だけをソートしたとします。 すると体重だけがソートされてしまうのでしょうか? それとも構造体ごとソートされてくれるのでしょうか? 前者だとかなり悩むことになりそうなので、そこだけ教えていただきたく質問させていただきました。 よろしくお願いします。

  • 構造体配列のポインタを引数に

    こんばんは。 Visual C++ 2008 Express Edition を使っています。 C++のあるプログラム内の関数で、構造体の1次元配列のポインタを引数に取ろうと思っているのですが上手くいきません。 関数の目的としては、関数側と呼び出す側のファイルを分けているので、関数側のグローバルな構造体配列のアドレスに呼び出し側の構造体配列のアドレスを代入することです。 構造体はExampleと型を定義してあります。 ・関数側 Example *global_ex[10]; void GetEx(Example *ex[])  // ←2つ目のエラー {   global_ex = ex;  // ←1つ目のエラー } ・呼び出し側(呼び出し側の関数内)   Example ex[10];   (exの初期化)   GetEx(&ex); ・エラー  error C2440: '=' : 'Example *[]' から 'Example [15]' に変換できません。配列型への変換はありませんが、参照またはポインタから配列への変換があります。  error C2664: 'GetEx' : 1 番目の引数を 'Example (*)[15]' から 'Example *[]' に変換できません。 プログラムとエラーは以上です。 何をすれば解決できるのか、ご存じの方いらっしゃいましたらよろしくおねがいします。 CとC++は独学で学んでいるので偏りがあると思います。 「基本的な○○が分かっていないのでは?」と感じたらその点もご指摘頂けると嬉しいです。。

専門家に質問してみよう