- PR -

C++.NETで構造体のメンバを配列にするには

1
投稿者投稿内容
hiro
会議室デビュー日: 2005/09/02
投稿数: 11
投稿日時: 2005-09-13 17:41
C++.NETで構造体のメンバに配列を定義するときに、
配列の要素数はどのようにして定義するのでしょうか?
構造体を定義するときに要素数を定義するとエラーになってしまうのですが・・・。
どなたか詳しく教えてください。

public __gc struct aaa
{
String *a[]; // これの要素数を指定したいのですが
};


[ メッセージ編集済み 編集者: hiro 編集日時 2005-09-13 17:50 ]
mayo
会議室デビュー日: 2005/09/13
投稿数: 4
投稿日時: 2005-09-13 22:34
staticじゃないと怒られますが。staticでも良いなら

static String * a __gc [] = new String * __gc[10];

とかじゃダメですか?

(試してません。ごめんなさいっ!)
#もともと確保数とか気にしなくて良いのがマネージの特徴な気がするんですよ。
最初に256くらいとってくれますよ。(予想)
特徴であって良いとか悪いとかは言いませんが。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-09-14 09:30
コンストラクタを定義して、そこで初期化してあげてください。
hiro
会議室デビュー日: 2005/09/02
投稿数: 11
投稿日時: 2005-09-14 09:30
見事にできました!
mayoさんどうもありがとうござます。
hiro
会議室デビュー日: 2005/09/02
投稿数: 11
投稿日時: 2005-09-14 09:35
引用:

Hongliangさんの書き込み (2005-09-14 09:30) より:
コンストラクタを定義して、そこで初期化してあげてください。



なるほど。
もっと勉強しなくては・・・。
どうもありがとうございます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-14 09:47
static メンバでないのならば、こんな感じかなぁ。

コード:

    private __gc struct StructHoge {
        String __gc *Strings[];

        public:
            StructHoge(void) {
                this->Strings = new String __gc *[10];
            }
    };


環境がないので、検証してません。。。


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
hiro
会議室デビュー日: 2005/09/02
投稿数: 11
投稿日時: 2005-09-14 10:06
みなさんどうもです。
問題なくできました。

ところで、
this->Strings = new String __gc *[10];

this->Strings = new String * __gc [10];
はどう違うのですか?
*をつける位置によって何か違いがあるのでしょうか?
基本的な質問で大変申し訳ないのですが・・・。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-14 10:28
こんにちは、じゃんぬ です。

引用:

hiroさんの書き込み (2005-09-14 10:06) より:
みなさんどうもです。
問題なくできました。


おお、良かったです。
C++ は最近触ってないですから、自信がなくって...

引用:

ところで、
this->Strings = new String __gc *[10];

this->Strings = new String * __gc [10];
はどう違うのですか?
*をつける位置によって何か違いがあるのでしょうか?
基本的な質問で大変申し訳ないのですが・・・。


__gc のポインタ で検索すると、幸せになれるかもしれません。
(いや、あまりなれないかもw)


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)