diff -r 43e37759235e -r 51a74ef9ed63 Symbian3/SDK/Source/GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita Wed Mar 31 11:11:55 2010 +0100 @@ -0,0 +1,39 @@ + + + + + +Array +of variable length elements, flat bufferDescribes how elements of varying length are organised in the array +buffer. +

This is a CArrayVarFlat<class T> object whose +elements can have different lengths. Although each element is a class T object, +the length of that object can vary.

+

In this type of array, each element occupies its own individual cell allocated +from the heap. The array buffer contains fixed length data structures, one +for each element, which are physically contiguous within the flat array buffer. +Each fixed length data structure contains the length of an element (a TInt value) +and a pointer to it. The structure itself is part of the implementation but +occupies no more than eight bytes on 32-bit machines.

+

A flat buffer always occupies a single cell allocated from the heap and +is always extended by the process of reallocation. A flat array buffer is +implemented using a CBufFlat object.

+

The following diagram illustrates how elements are organised within the +array buffer:

+ + + +

This kind of array is suitable for a small number of elements or for a +moderately large but fixed maximum number of elements. It is not suitable +for large arrays with a high turnover of elements.

+

This class is immediately derived from the abstract templated base class CArrayVar<class T> which +is itself derived from the abstract non-templated base class CArrayVarBase.

+
See also

Using +Dynamic Buffers.

+
\ No newline at end of file