Trying to use portaudio to record some data, then use an algorithmic filter to change the recorded voice and then play it back. I\'ve verified a lot of it (coming from example)
The problem is that data.recordedSamples now (at the time of free()
) points towards a structure allocated on the stack, not on the heap!
Since you had this instruction:
data.recordedSamples = filteredArray;
The
if( data.recordedSamples )
is of no use, since the adress id valid, but not consistent: it is never allocated with malloc()
and it is not on the heap, but on the stack!
At the moment when you are calling free()
, that adress could well point towards the stack of another function.
Copy your filtered data back over the original recordedSamples
if you want, just do not re-assign that pointer.
edit:
use this:
for(i = 0; i