配列を分割する方法を考えているので、配列がバイナリレベルでどのように機能するのか疑問に思っていました。配列を取得してリンクリストにすることを意味し、配列をリンクリストに変換することについて話しているのではありません(コピー、古い配列を新しいものに...) とにかくデータを解放することは可能ですか互いに配列します。
2 に答える
0
あなたが何をしようとしているのか正確にはわかりませんが、他の連続したメモリのチャンクで行うことと同じように、配列でほとんど何でもできます。たとえば、次のように配列を「分割」できます (実際には配列の一部を指すだけです)。
int A[] = { 0, 1, 2, 3, 4, 5 };
int *part1 = A;
int *part2 = A + 3;
// part1[0] == 0
// part1[1] == 1
// part1[2] == 2
// part2[0] == 3;
// part2[1] == 4;
// part2[2] == 5;
このようなことを行うときは、配列の境界の外で実行して未定義の動作を引き起こさないように注意する必要があります。ほとんどすべてのケースで、C++ 標準ライブラリが提供する標準コンテナとアルゴリズムを単純に使用する方がはるかに優れたアプローチです。
于 2012-10-09T02:36:14.377 に答える
0
配列は連続的に割り当てられるため、配列内の任意の要素のメモリを解放することはできません。ただし、 によって尻尾を解放することは可能realloc
です。
于 2012-10-09T02:31:22.077 に答える