私はfloat rtmp1 [NMAX * 3] [3]の配列を持ち、rtmp1 [i] [n]として使用され、nは0から2までです。私は0から3 * NMAX - 1です。しかし、rtmp1をrtmp1 [3 * 3 * NMAX]に変換したいと思います。 rtmp1 [3 * i + n]がrtmp1 [i] [n]と等価であるとしてこの新しい1D配列を扱うか?明確化のために事前に感謝します。C++:2D配列対1D配列の違い
答えて
rtmp1 [i]の[n]はrtmp1と等価である[私はNMAX + nを*]
あなたNMAXがどこにあるか、http://www.cplusplus.com/doc/tutorial/arrays/を参照してください。その幅。
私がしようとしていた主な目標は、2D配列から擬似2D配列に変換することです。あなたの答えは私が受け入れるものです。ありがとう。 – stanigator
はい、これを行うことで何を証明しようとしていますか? rtmp1 [i] [n]は実行時間が長くなり、読みやすくなります。
"実際には、rtmp [i + 3 * n]を使いたいでしょうか?違いは何ですか?あなたがやっているのは、アドレスを交換することだけです。
実行時までサイズがわからないため、rtmp1を1D配列に動的に割り当てるようにしようとしています。 NMAXは静的に割り当てられる本当に大きな数です。現在の実装はメモリ消費に関して非常にゲットーです。 – stanigator
一部のエイリアス防止ルールが破られることはありません。私の読書はそれが問題ないということですが、私はすでに間違っていて、時には、標準の異なる部分で2つの相反するルールのどちらが優先されているかを知るために全領域が混乱して大胆である。
Exemple:
typedef float Point[3];
void f(float* tab, Point* pt)
{
(*pt)[2] = 6;
// I don't think the compiler can assume that (*pt)[2] isn't modified by
tab[5] = 3.141592;
}
// context which give a problem if I'm wrong.
float rtmp1[NMAX*3][3];
float *ptr = &rtmpl[0][0];
f(ptr, rtmpl[1]);
- 1. Cの2D配列に1D配列を代入する
- 2. 1D配列をC++で2D配列としてアクセス
- 3. C#。 1D配列を2D配列に変換する方法
- 4. 2D配列から1D列配列と1D行配列を取得する方法は? (C#.NET)
- 5. 2D配列からオブジェクト1D配列への列のコピー
- 6. 2D配列を可変列幅の1D配列にマッピング
- 7. 2dのnumpyの配列で1dのnumpyの配列をブロードキャスト
- 8. Javascript 2D配列と1D配列との間
- 9. 1D配列のインデックスを2D配列に変換する
- 10. 2D numpy配列を1D配列にスライスする
- 11. 1d numpy配列を2d numpy配列に変換する方法
- 12. 1dブール値配列を使用した2d配列
- 13. 1D配列インデックスを2D配列インデックスに変換する
- 14. 2D配列 - C -
- 15. 2D配列C#
- 16. は(Cで)1D char配列
- 17. 2Dオブジェクト配列の列を1D文字列配列としてキャスト
- 18. 2D配列の列を1D配列のように変更する
- 19. C++、1D Arrayを2D配列に変換する
- 20. C++は2Dデータを持つ1D配列を使用します
- 21. C#2Dポインタ配列
- 22. Visual C#2つの1D文字列[]配列を1つの2D文字列[、]配列にマージする方法
- 23. C#オブジェクト[、] 2D配列をC++ std 2D配列に変換する
- 24. 2D配列の座標ペアの1D配列の整数インデックスを返します
- 25. 2D配列の違いのナンシーベクトル化
- 26. Cの1D配列へのscanf()
- 27. 2D配列の配列
- 28. C++ 2D配列へのポインタ
- 29. C++ 2D配列のバグ
- 30. Objective Cの2D配列
0から(3 * NMAX) - 1ではありませんか? – KTC
明確化してください。 "私は0から2までです"またはrtmp1 [3 * 4 * NMAX]を意味しますか? –
@KTC:はい、私はそれを修正しました @bill weaver:あなたの質問を明確にしてください。 – stanigator