私は武器とその添付ファイルを保持している多次元配列を作るしようとしています同カテゴリーへAK47はアサルトライフルで、このG18はマシンガンです。の3D文字のサイズを取得します*アレイ
char ***WEAPONS[7] = { ASSAULTRIFLES, SUBMACHINEGUNS, LIGHTMACHINEGUNS, SNIPERS, PISTOLS, MACHINEGUNS, SHOTGUNS };
武器にアクセス:
char **MACHINEGUNS[4] = { G18, TMP, RAFFICA, PP2000 };
だから今はそうは次のように私は、カテゴリを保持する必要があります別の配列を作成した武器をソートしていますので、は次のようにだから私は、カテゴリをrepresnt 2D配列を作成しましたlike
char *weapon = WEAPONS[assaultrifle][ak47][0]; // assaultrifle & ak47 are enum mebers
は完璧に機能します。私が直面している問題は、行と列のサイズを取得できないということです。 F.e.私は自分のしているどのように多くの武器のクラスを知りたい場合、私はどうなる:私は7を与える
sizeof(WEAPONS)
私は私が行うがいくつあるかassaultrifles知りたい場合は、次の
sizeof(WEAPONS[assaultrifles])
しかし、ここです
:私はこれを行う場合、それは4 aswellを返しchar **ASSAULTRIFLES[9] = { AK47, M16A4, M4A1, FN2000, ACR, FAMAS, FAL, SCARH, TAR21 };
:問題は:assaultrifleの配列サイズが9であるが、これは私に4を与えます10
sizeof(WEAPONS[assaultrifles][ak47])
でも、ak47の配列サイズは39です。それがなぜ機能しないのか、どのように達成できたのでしょうか?事前に感謝し、長いテキストを申し訳ありません!
[3人のプログラマー](http://wiki.c2.com/?ThreeStarProgrammer)にしないでください。'std :: string'、' std :: vector'、オブジェクトと参照を代わりに使用してください。 – NathanOliver
@ NathanOliverプロジェクトはゲーム用で、すべてのゲームの入力はchar *で、.c_str()はある時点でingame文字列をミックスするので、charを使うことができます。また、まだベクトルを使用する方法は、私は素晴らしいことができる例を与えることができます:) – SupaDupa
実際には、ポインタサイズをバイトで取得しているので、あなたは常に4になっています。 – DimChtz