Thanks for your answers !
Each information from both of you are interesting !
Sorry for disturbing and take a lot from your free times.
On 2024-09-22T21:08:04.000+02:00, Otto Moerbeek <otto@drijf.net> wrote:
> On Sun, Sep 22, 2024 at 08:07:54PM +0200, Страхиња Радић wrote:
>
>
> > Дана 24/09/22 07:59PM, Страхиња Радић написа:
> >
> > > Of course, that would cause a memory leak if the memory was assigned to
> > > a variable, like this:
> > >
> > > char* tmp = malloc(13);
> > >
> > > otherwise, like this:
> > >
> > > malloc(13);
> > >
> > > the result is discarded and a warning is printed if the program is
> > > compiled by GCC.
> >
> > Correction/clarification: even if the result is discarded, this still
> > causes the leak, just the pointer to the allocated memory is not
> > assigned to a variable. This is easily verifiable by using
> > ktrace(1)/kdump(1).
> >
>
> All correct, but still, on process exit all resources used by a
> program are cleaned up. In that sense it is not a memory leak to not
> call free. Especially for one-time allocations.
>
> It is differrent if the malloc is e.g. in a loop, causing memory usage
> to grow while executing the program. That is a memory leak you want to
> fix, especially if the program is a long running one, like a daemon.
>
> -Otto
No comments:
Post a Comment