Get Adobe Flash player
Security News


 Call support on 087 6066916


The Windows Registry is a single database that stores the settings and options for the Windows operating system itself, all of the hardware contained on the system, all software applications, all user account settings and preferences and more.

  Slow Windows startup            Windows freezes/crashes

  Unable to log onto PC             Blue Screen Errors

  Slow programe launches       

The majority of common Windows errors and performance issues are caused by problems with the Windows Registry


What Is a Memory Leak? (Q318263)

This article discusses what memory leaks are and lists some possible causes of memory leaks. Additionally, this article discusses the perceived memory leak and how it can be misinterpreted as a true memory leak.
Memory leaks can cause an application to run out of resources and can cause an application to crash. It is important to track down memory leaks. The problem of memory leaks has plagued developers in C and C++ for years. In Microsoft Visual Studio .NET, a comprehensive garbage collection package and managed memory can stop memory leaks, but, under some circumstances, a program may appear to be leaking memory.
A memory leak occurs when memory is allocated in a program and is never returned to the operating system, even though the program does not use the memory any longer. The following are the four basic types of memory leaks: In a manually managed memory environment: Memory is dynamically allocated and referenced by a pointer. The pointer is erased before the memory is freed. After the pointer is erased, the memory can no longer be accessed and therefore cannot be freed.
In a dynamically managed memory environment: Memory is disposed of but never collected, because a reference to the object is still active. Because a reference to the object is still active, the garbage collector never collects that memory. This can occur with a reference that is set by the system or the program.
In a dynamically managed memory environment: The garbage collector can collect and free the memory but never returns it to the operating system. This occurs when the garbage collector cannot move the objects that are still in use to one portion of the memory and free the rest.
In any memory environment: Poor memory management can result when many large objects are declared and never permitted to leave scope. As a result, memory is used and never freed.


Detecting and Isolating Memory Leaks

The ability to dynamically allocate and deallocate memory is one of the strongest features of C/C++ programming, but the greatest strength can also be the greatest weakness. This is certainly true of C/C++ applications, where memory-handling problems are among the most common bugs.
One of the most subtle and hard-to-detect bugs is the memory leak — the failure to properly deallocate memory that was previously allocated. A small memory leak that occurs only once may not be noticed, but programs that leak large amounts of memory, or leak progressively, may display symptoms ranging from poor (and gradually decreasing) performance to running out of memory completely. Worse, a leaking program may use up so much memory that it causes another program to fail, leaving the user with no clue to where the problem truly lies. In addition, even harmless memory leaks may be symptomatic of other problems.