We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Detected memory leaks!

Hardaway
Hardaway asked
on
Medium Priority
365 Views
Last Modified: 2013-11-20
I have written a program with VC++ v5.0

I have no problem on compile it and run it, but after I quit the program(normally), I found that something appear in the debug window.

It stated the following.....
Detected memory leaks!
Dumping objects ->
C:\myprogram(188) : {263} normal block at 0x007F4970, 16 bytes long.
...........

But in myprogram line no. 188, the statement is just "CRect *rect = new CRect;"

What's the problem in this line??
Comment
Watch Question

Tommy HuiEngineer

Commented:
Are you deleting the memory? It appears that you have not deleted the memory, which is why the runtime libraries are complaining.
Commented:
In the debug version of MFC dll's there is a mechanism that keeps track after dynamic allocation and deallocation, if you get this message then it means that the memory that you allocated in this line, was not deleted.  check all execution paths and see that you did delete the CRect memory in all ways.
thui's answer is corrent, thats why he should get the points, if you like my explanation better then give them to me  :-)

p.s.    if you are still convinced that the memory is deleted, we can discuss that, there are a some very interesting ways for debugging things like that.


Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
I made a mistake in deallocating the memory, so that why I have
an error when I run the program.

But now I have another problem, just take a look on the source code first:

Object::myfunc()
{
    for (int i = 0; i < limit; i ++)
        BOject[i] = new CObject;
}

BObject is declare as ClassName *BObject[limit]
and I have delete [] *BObject

However,still "Detected memory leaks"


Commented:
Yuo have deleted the array of pointers, but not the data that the pointers have pointed to.
you should add ( bofeor doing what you are right now ) a 'for'
that will delete the data itself - very simular to the allocations.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.