Struct to hold pointers to arrays. It is used to transfer data (or rather pointers to data) from one module to another. Example: The Detector sends spikes to the Whitener by allocating memory for these spikes, coping the spikes into that memory, setting chunk[0] to the pointer to that memory, setting cols[0] to the number of datapoints per spike and rows[0] to the number of spikes. Thus the receiver knows the number of spikes, the number of values per spike and the length of the (one dimensional) array. The Whitener also wants the whitening matrix from the Detector. So the pointer to a copy of the whitening matrix would be stored in chunk[1]. So only one ChunkPtrStruct is required to send different types of data from one module to another.