|
yes, but you should really fix the mem leak first
Darka [ Xanya]
"When you're taught to love everyone, to love your enemies, then what value does that place on love?"
|
|
|
|
|
it is supposed to, but it might fail sometimes in tracking such memory... so, good programming practices remain the best : you allocate some memory ; then, YOU delete it before exiting the program.
|
|
|
|
|
yeah, I know, I know. But this should be some kind of advantige for console app if do a lot mem allocation, files handles, then you can allow yourself to get rid of that collection of all those resources and garbagging your code.
Its not the case when you write some class to be perfect without any leaks or handles.
9ine
|
|
|
|
|
why because it is a console application that it couldn't be OOP ?
and what is that way of thinking that console applications should be less well designed than graphical apps...
really, i don't understand your point of view.
|
|
|
|
|
Whats the point, writing additional mem free routines to get rid of allocated ones, as it will be deallocated after console is terminated. It is very well designed and quite large but without deallocation.
How can it be OOP one?
9ine
|
|
|
|
|
9ine wrote: Whats the point, writing additional mem free routines to get rid of allocated ones, as it will be deallocated after console is terminated. It is very well designed and quite large but without deallocation.
This makes no sense. Technically, heap memory will be reclaimed by the OS after the program terminates, but if you fail to free it yourself when you are done with it, then your program will slowly (or not so slowly) eat up more and more memory while it is executing (assuming you are allocating based on some set of events -- and if you are not, chances are that data would be better served on the stack anyway). As far as file handles (and pretty much any kernel object), they will NOT be reclaimed when your program exits. This means that if you open a file and then quit, you may need to restart your computer before you can reopen that file (NOT GOOD!).
The point is, if you allocate memory, you should free it. If you don't, do not submit that code as an assignment nor as production code for any company ... it will be rejected as incomplete.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
oh, kernel objects memory leaks are my favorite ones! never clean them after myself
whats the point allocation during the start of the console for say 1000 strings of 256 bytes long and then leaving the program without deleting them.
9ine
|
|
|
|
|
9ine wrote: It is very well designed and quite large
It is not well designed if it fails to clean up after itself. True, the operating system will clean up most resources allocated by your program after it exits, even when you don't free them yourself. The problem is, it may not free all of them. There are resources in Windows that are not freed automatically when a program exits. This means that your program could leave behind resource allocations that can never be freed without a restart. Dangling allocations could also cause your application to fail the next time you run it. A resource you allocated previously and did not free is no longer available.
The other problem is that, while your program is running, it continually consumes more and more resources. If you don't free them as soon as you are done using them, they are a waste. Those resources aren't available for use by other applications or the operating system.
Software Zen: delete this;
|
|
|
|
|
I am compiling a project which I have modified to allow it to compile for Linux as well as Windows.
All compiles ok, except in VS6, the compiler keeps complaining about missing header files.
The headers it is looking for are the Linux ones which are ifdef'ed out (it is ignoring the ifdefs )
I have turned off precompiled headers, but this doesn't seem to have made any difference...
This seems to be happening in a different 'stage' to the Compiling/Linking, as the executable is created ok.
any ideas?
Thanks...
Stormblade
|
|
|
|
|
which files is it looking for ?
|
|
|
|
|
General linux specific header files, needed to compile the code under linux.
|
|
|
|
|
Storm-blade wrote: which are ifdef'ed out (it is ignoring the ifdefs )
How are you doing that ? Post some code so that we can check.
|
|
|
|
|
<br />
#ifdef LINUX<br />
<br />
#include <sys/time.h><br />
#include <X11/Xlib.h><br />
#include <X11/Xutil.h><br />
#include <X11/keysym.h><br />
<br />
#else // LINUX<br />
<br />
#endif // LINUX<br />
And LINUX is only defined when compiled under linux...
|
|
|
|
|
Just to make a test: comment these preprocessor definition so you are 100 percent sure they won't interfere and recompile. If this doesn't work, then you probably forgot to put some of the include inside preprocessor definitions. If this works, then you probably declared LINUX somewhere and forgot to remove it.
You can also see which file generates the error, so open the file and check the include part to see if everything is correct.
|
|
|
|
|
|
Try build all or/and delete the old build files. Maybe there is an old version with the headers in it.
If it doesnt help compile every file per hand to get the source of the message.:-X
Greetings from Germany
|
|
|
|
|
KarstenK wrote: Try build all or/and delete the old build files. Maybe there is an old version with the headers in it.
Tried that
KarstenK wrote: If it doesnt help compile every file per hand to get the source of the message.:-X
It doesn't seem to be coming from the compiler itself...
(As I said the code compiles and links correctly).
Something else is reading the source files and looking for just the #include's, and is ignoring #ifdef's etc...
I thought it was the precompiled header stuff... but even without that it still does it.
|
|
|
|
|
CFileDialog will manage it..u don't have to write code for that...
nave
|
|
|
|
|
I see a question here but where is it?
|
|
|
|
|
the OP has deleted it one more selfish guy
|
|
|
|
|
but Im wondering do you know why?because isee a question and i see a answer to Naveen R but when i refresh this page i see only answer Naveen R
|
|
|
|
|
|
i saw it, but why didn't he just updated his post ?
|
|
|
|
|
|
see me wrote: hey toxcct...am not a selfish guy
i didn't see the answer posted by Naveen.
hum, well, even you didn't see it, why have you deleted it, as you reasked it 10 minutes later... moreover, you're on a forum to share, ,not only to get an answer... what's been asked and answered can be found back if someone roam on the forum and search for what or what topic.
edit your posts, but don't delete them when you ask a question.
|
|
|
|