次の方法で共有


CArray::SetSize

空の配列または要素を持つ配列のサイズを設定します。必要に応じてメモリを割り当てます。

void SetSize(
   INT_PTR nNewSize,
   INT_PTR nGrowBy = -1 
);

パラメーター

  • nNewSize
    新しい配列のサイズ (要素数) を指定します。0 以上であることが必要です。

  • nGrowBy
    サイズを増やす必要があるときに、確保する要素スロットの最小数を指定します。

解説

新しいサイズが古いサイズよりも小さい場合、配列は切り捨てられ、すべての未使用のメモリが解放されます。

配列を使い始める前に、この関数を使って配列のサイズを設定します。SetSize を使用せずに要素を配列に追加すると、配列が頻繁に再割り当てされ、コピーされます。頻繁に再割り当てとコピーを行うとパフォーマンスが低下し、メモリ断片化の原因になります。

パラメーター nGrowBy は、配列を拡張するときの内部メモリの割り当てに影響します。GetSizeGetUpperBound で返される配列のサイズには影響しません。既定値を使うと、MFC はほとんどの場合、メモリの断片化を防ぎ、効果的に最適化するように計算してメモリを割り当てます。

使用例

CArray::GetData の例を参照してください。

必要条件

ヘッダー: afxtempl.h

参照

関連項目

CArray クラス

階層図

CArray::GetUpperBound

CArray::GetSize

CArray::GetCount