C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: C++/CLIで、C++でいう配列のポインタの配列を定義する


(過去ログ 76 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■44922 / inTopicNo.1)  C++/CLIで、C++でいう配列のポインタの配列を定義する
  
□投稿者/ なっと (14回)-(2009/12/23(Wed) 09:00:46)

分類:[C++/CLI] 

2009/12/23(Wed) 09:06:04 編集(投稿者)
こんにちわ。

C++/CLIで、C++でいう配列のポインタの配列を定義するには
どのようにすればいいのでしょうか?
たとえば、下記のような配列があったとした場合、
C++/CLI のマネージハンドルで定義するには、どのような記述となるのでしょうか?

unsigned char* ar[2][2] = 
{
	{
		(unsigned char*)&(tst[0][0]) + 1,
		(unsigned char*)&(tst[0][0]) + 0,
	},
	{
		(unsigned char*)&(tst[1][0]) + 1,
		(unsigned char*)&(tst[1][0]) + 0,
	},
};

をC++/CLIで作成した配列に置き換えたいのです。

array<Byte^,2>^ ar = gcnew array<Byte^,2>(2,2)
{
?
};

なんだかよくわからなくなってきました。
理解が浅いので変なことを書いているかもしれませんが、
何卒よろしくお願いいたします。


引用返信 編集キー/
■44926 / inTopicNo.2)  Re[1]: C++/CLIで、C++でいう配列のポインタの配列を定義する
□投稿者/ Hongliang (531回)-(2009/12/23(Wed) 11:28:58)
トラッキングハンドルはポインタと違って演算できませんから、完全に同じものは作れません。
何を意図した配列なのか分からないので、こう言うのは CLI ではこういう風に表現すると助言するのも難しいですね。
なお、値型のトラッキングハンドルは普通使いません。トラッキング参照 % なら使われることもありますが。
引用返信 編集キー/
■44934 / inTopicNo.3)  Re[1]: C++/CLIで、C++でいう配列のポインタの配列を定義する
□投稿者/ επιστημη (2338回)-(2009/12/23(Wed) 13:37:05)
επιστημη さんの Web サイト
2009/12/23(Wed) 13:37:23 編集(投稿者)

> unsigned char* ar[2][2]

これは unsigned char* が 2x2 個ね。

> array<Byte^,2>^ ar = gcnew array<Byte^,2>(2,2)

これだと Byte^ が 2x2 だけど * と ^ はコンパチではありません。
Byte配列 が 2x2 ほしいなら

array<array<Byte>^,2>^ になりますな。

引用返信 編集キー/
■44941 / inTopicNo.4)  Re[2]: C++/CLIで、C++でいう配列のポインタの配列を定義する
□投稿者/ なっと (15回)-(2009/12/23(Wed) 17:54:21)
回答ありがとうございます。

>>Hongliang さん

素直にアンマネージのままやったほうがいいという事でしょうか。
そのほうが早い気もしてきました。

>>επιστημη さん

Byte配列が 2x2欲しいのではないです。
tstという配列は、UInt16サイズで、それぞれ1バイト単位でアクセスするためのポインタのテーブルが
作りたかったのです。

人のプログラムの移植をしているのですが、ポインタの演算が多いプログラムだと
マネージ/アンマネージ混在でいったほうが早いですかねえ。

解決済み
引用返信 編集キー/
■44943 / inTopicNo.5)  Re[3]: C++/CLIで、C++でいう配列のポインタの配列を定義する
□投稿者/ επιστημη (2341回)-(2009/12/23(Wed) 18:04:50)
επιστημη さんの Web サイト
> 人のプログラムの移植をしているのですが、ポインタの演算が多いプログラムだと
> マネージ/アンマネージ混在でいったほうが早いですかねえ。

マネージで染めるなら C++/CLI の必要ないし。C#/VB.NETでやればいい。
好きにコキ混ぜて使えるのが C++/CLI のオイシイとこですから。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -