Hello, everyone! I just started learning JUCE, in my project, I used “MemoryBlock” class by this way:
[code]class alignedMemoryBlock: public juce:: MemoryBlock
{
public:
OneBuffer (int L);
~ OneBuffer ();
void * alignP;
};
[/code]
and in the constructor:
[code]alignedMemoryBlock:: alignedMemoryBlock (int L): MemoryBlock (L +16, false)
{
int K = 0;
K = (int) getData ();
if (K == 0) {
BufferWrong ();
AignedP = 0;
return;
}
if (K% 16! = 0) {
K = K + (16-K% 16);
}
AignedP = (void *) (K);
}
[/code]
So I can get 16-byte aligned MemoryBlock.
Then I created a class:
[code]class FreqMath: FreqDel, FreqBase
{
private:
alignedMemoryBlock * REDE, * ER, * EI, * ERREV, * EIREV, * WEIGHTA, * XFADER, * BITREVNUMBERDEL, * BITREVNUMBERDEL2;
…
…
…
};
FreqMath:: FreqMath (int k, int D, int C): FreqBase (k), FreqDel (D)
{
…
…
…
…
REDE = new OneBuffer (LengthMax * 8,8);
EI = new OneBuffer (L * 8,8);
ER = new OneBuffer (L * 8,8);
EIREV = new OneBuffer (L * 8,8);
ERREV = new OneBuffer (L * 8,8);
XFADER = new OneBuffer (C * 8,8);
WEIGHTA = new OneBuffer ((LengthMax / 2 +1) * 8,8);
BITREVNUMBERDEL = new OneBuffer (Del * sizeof (int), 0);
BITREVNUMBERDEL2 = new OneBuffer (Del * 2 * sizeof (int), 0);
}
FreqMath:: ~ FreqMath ()
{
REDE-> ~ OneBuffer ();
ER-> ~ OneBuffer ();
EI-> ~ OneBuffer ();
ERREV-> ~ OneBuffer ();
EIREV-> ~ OneBuffer ();
WEIGHTA-> ~ OneBuffer ();
XFADER-> ~ OneBuffer ();
BITREVNUMBERDEL-> ~ OneBuffer ();
BITREVNUMBERDEL2-> ~ OneBuffer ();
}
[/code]
Finally, in the main function:
[code]# Include
Include “FreqMath.h”
int main () {
FreqMath A (4,2,8);
system (“pause”);
return 0;
}
[/code]
I think that’s good !
So I press F5, VC2011 told me:
Detected memory leaks!
Dumping objects ->
{281} normal block at 0x023B5CF8, 20 bytes long.
Data: <H]; > 48 5D 3B 02 CD CD CD CD 20 00 00 00 CD CD CD CD
{279} normal block at 0x023B5C58, 20 bytes long.
Data: < ; > A8 5C 3B 02 CD CD CD CD 10 00 00 00 CD CD CD CD
{277} normal block at 0x023B5B80, 20 bytes long.
Data: < [; H > D0 5B 3B 02 CD CD CD CD 48 00 00 00 CD CD CD CD
{275} normal block at 0x023B5AB0, 20 bytes long.
Data: < [; @ > 00 5B 3B 02 CD CD CD CD 40 00 00 00 CD CD CD CD
{273} normal block at 0x023B5A00, 20 bytes long.
Data: <PZ; > 50 5A 3B 02 CD CD CD CD 20 00 00 00 CD CD CD CD
{271} normal block at 0x023B5950, 20 bytes long.
Data: < Y; > A0 59 3B 02 CD CD CD CD 20 00 00 00 CD CD CD CD
{269} normal block at 0x023B4070, 20 bytes long.
Data: < X; > F0 58 3B 02 CD CD CD CD 20 00 00 00 CD CD CD CD
{267} normal block at 0x023B3FC0, 20 bytes long.
Data: < @; > 10 40 3B 02 CD CD CD CD 20 00 00 00 CD CD CD CD
{265} normal block at 0x023B3EB0, 20 bytes long.
Data: < ?; > 00 3F 3B 02 CD CD CD CD 80 00 00 00 CD CD CD CD
Object dump complete.
why? where I did wrong?THX!

