あなたはこのようなことをしたいと思っていますか?これにより、保存されているすべてのバッファが1つのバッファに集約されます。インデックスを保存するための個別のバッファがあることに注意してください。これは必要ないかもしれませんし、理論的にはfwBuffer配列の場所にパックすることもできます。
// Max number of data chunks
const unsigned maxBuffers = 1024;
// All the data stored here.
short int fwBuffer[1000000];
// how many data chunks we have
unsigned saveBufferCount = 0;
// Index to find each data chunk
// bufferIndex[saveBufferCount] points to where the next buffer will be placed (i.e. _after_ all the stored data).
short int* bufferIndex[maxBuffers] = {fwBuffer};
void storeBuffer(unsigned length, unsigned inchannels, short int* inbuffer)
{
short int *bufferIterator = bufferIndex[saveBufferCount];
// Could do a memcpy here.
int count = 0;
for (count = 0; count < length*inchannels; count++)
{
*bufferIterator++ = inbuffer[count];
}
++saveBufferCount;
bufferIndex[saveBufferCount] = bufferIterator;
}