char型の多次元配列を作るには?


ghth  2005-11-13 22:49:00  No: 59563  IP: 192.*.*.*

はじめまして。ghthです。
WinXPでVisual C++ .NETをやっています。
タイトルの通りなのですが、Windows フォーム アプリケーションでchar型の多次元配列を作成したいのですが、うまくいきません。
何か解決法などがあったら教えてください。

編集 削除
επιστημη  2005-11-13 23:27:49  No: 59564  IP: 192.*.*.*

「うまくいきません」とは?

編集 削除
Blue  2005-11-14 00:43:04  No: 59565  IP: 192.*.*.*

上手くいかないソースを見ないとわかりませんが、

char a[ 3 ][ 4 ];

みたいのではダメでしょうか?


__gcクラス内では

char a __nogc[ 3 ][ 4 ];

と __nogc をつけなければいけませんけど。

MSDN
4.5.3 __gc キーワードおよび __nogc キーワードと配列
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vclrfjaggedarrays.asp



System::Charでマネージドの配列(System::Array)として扱う場合は

System::Char a[,]  = new System::Char[ 3, 4 ];

とします。
ただし、System::Charとcharは違うので気をつけてください。
(charならSystem::Byteのほうがよさそう)


ジャグ配列(多段階配列)については良くわかりません。

編集 削除
Blue  2005-11-14 00:58:32  No: 59566  IP: 192.*.*.*

> ジャグ配列(多段階配列)については良くわかりません。
http://support.microsoft.com/default.aspx?scid=kb;ja;814058
だそうです。

# 2005では[]がarrayキーワードになったのでOKなんですけどね。。。
## 以下参考
## array< array< char >^ >^ a = gcnew array< array< char >^ >( 2 );
## a[ 0 ] = gcnew array< char >( 3 );
## a[ 1 ] = gcnew array< char >( 2 );

編集 削除
Blue  2005-11-14 01:05:03  No: 59567  IP: 192.*.*.*

> System::Char a[,]  = new System::Char[ 3, 4 ];
ちなみに
char型でマネージド配列にする場合は、__gc をつけないといけないですね。
(__gcクラス内ではどうなるか未確認)

char a[,] = new char __gc[ 3, 4 ];
a[ 0, 0 ] = 'a';

編集 削除
ghth  2005-11-14 21:54:25  No: 59568  IP: 192.*.*.*

ご回答ありがとうございます。
早速試してみます。

編集 削除