私はC++で何かをする方法があるかどうかを調べようとしていますが、これはC++でかなり簡単です。具体的には、データの配列がある場合、そのデータへのポインタを作成して、より便利にサブセクションにアクセスできます。配列のサブセットにアクセスする方法は?
unsigned char buffer[1000];
をし、私は多くのことを操作する必要があることをその配列内の位置110から102までの文字列があることを決定し、私はこれを行うことができます:私が持っている場合たとえば
、
unsigned char *strPtr = &buffer[102];
char firstChar = strPtr[0];
これにより、後の操作で各アレイインデックスに "102"を追加する必要がなくなります。
このようなことをするときに危険な状況が発生する可能性があることは認識していますが、C#で既存の配列のサブセットに新しい参照を作成できる道徳的なものがあるかどうか疑問です。実際には動作しないか、私はこれを掲示することはないだろうが、私はそれが私は全体の達成するために何をしたいのアイデアを取得すると思います例
byte [8] newArray = &buffer[102];
:よう
何か。
元の配列を直接コピーしたり修正したりしたいですか? – BalinKingOfMoria
私は実際にそれに書き戻しているわけではなく、ただそれから読むだけです。私はデータをコピーしないようにしたいと思います。実際、データをコピーするのがトリッピングポイントではないかどうかは私には問いません。 –
あなたの懸念がデータから読み取るだけであれば、なぜ 'int offset = 102;バッファ[offset + i] ... '?これは、あなたがタスクを達成するために安全でないコードを必要としないことを意味します。 'ArraySegment'は、これを行うためのよりクリーンなアプローチです。何らかの理由でオフセット計算を避けようとしているのであれば、安全でないコードを使用する必要があります。 –