Hi,
I am developing an embedded system using C. I have a limited memory, so I sometimes run into a problem whereby my system becomes totally trashed due to memory leakage.
So I am asking for suggestions and recommendations about the sources of memory leakage and how I can avoid them.
|
Ambitious contributor
|
|
| 13Jul2011,09:28 | #2 |
|
I hope this article will help you
http://mariusbancila.ro/blog/2010/07...-memory-leaks/ |
|
Mentor
|
![]() |
| 13Jul2011,16:26 | #3 |
|
Make sure that *EVERY* memory allocation is matched by a memory free, WITHOUT EXCEPTION.
Then it won't leak. |
|
Go4Expert Member
|
|
| 6Oct2011,12:18 | #4 |
|
I wish want to further the discussion. When we have something like this:
Code:
char myFunc(char* a, char* b)
{
...
}
|
|
Mentor
|
![]() |
| 6Oct2011,18:48 | #5 |
|
There is one situation where you need to free memory, which is where you have allocated it. If you have allocated it then you MUST deallocate it (when you've finished with it). If you have not allocated it then you MUST NOT deallocate it. That's all there is to it.
It's good practice to allocate and deallocate memory within the same function wherever possible, e.g.: Code:
void doSomething()
{
struct summat *newThing = malloc(sizeof(struct summat));
do_something_else(newThing);
free(newThing);
}
|
|
Go4Expert Member
|
|
| 18Jan2012,01:51 | #6 |
|
u can use deleaker or similar debugger for search gdi and memory leaks.
|

