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


ghth  2005-11-14 07:49:00  No: 59563

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


επιστημη  2005-11-14 08:27:49  No: 59564

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


Blue  2005-11-14 09:43:04  No: 59565

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

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 09:58:32  No: 59566

> ジャグ配列(多段階配列)については良くわかりません。
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 10:05:03  No: 59567

> 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-15 06:54:25  No: 59568

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加