views:

110

answers:

4
+2  Q: 

Memory allocation

Hi, I am experimenting with the c-language right at the moment, yet i have some trouble with memory allocation. After some time i have to restart my computer because my memory runs full. Is there a way to let the compiler tell me which arrays do not get deallocated after the program has run?

Thx for answers

+3  A: 

you can use valgrind to do that.

http://tldp.org/HOWTO/Valgrind-HOWTO/ http://valgrind.org/

use it on your compiled program with --leak-check=yes

tarrasch
A: 

You have tools that can tell you about memory leaks. Compilers i am afraid may not be useful for tha tpurpose.

You can also use DevPartner or Valgrind to analyse your memory leaks in case you are suspecting them. But for your system to be restarted because of memory issues how long do you run the application before you perform a restart.

How did you get to know that this is a memory related issue.

ckv
+2  A: 

You didn't tell us anything about your compiler, OS, platform... so the rest could only be wild guesses.

This sounds much that you have dead processes or something like that that keep eating your memory in the background. On linux you have top (and inside top press M) to inspect the processes running on your system and how much memory, time etc they consume. Do that to see what is happening on your machine and don't reboot it blindly without knowing the reason.

There are equivalent tools on all other operating systems that let you inspect the current state of processes.

Jens Gustedt
A: 

You better check your source code first, if you are under Linux, using 'splint' to your source and that will display you a lot, try to fix those warnings or errors, if everything gets done, recompile your source and try 'valgrind' to the exacutable.

You can see the reference of splint through its official website and so as valgrind.

splint: www.splint.org

valgrind: valgrind.org

Good luck~~~

Jo. Luxos