PREV INDEX NEXT

Author: Stan Eisenstat
Subject: Re: [Cs323] failing test 18
Date: Thursday, 29 Oct 2020, 14:26:39


    > Message Posted By: Unknown
    >
    > Test 18 description is that all storage should be reachable. Does that
    > just mean we dont free our table at the end? What is the requirement for
    > this?

No.  It means that:

  While heap storage need not be free()-ed before exiting, it must all be
  reachable at that time; i.e., valgrind should report 0 bytes lost.

  Note:  When main() returns, storage for all variables stored on the stack
  is freed before valgrind checks for unreachable heap storage.  Thus if an
  argument or automatic local variable contained the only pointer to a block
  on the heap, valgrind will report that block as being unreachable.  One
  solution is to call exit() instead of returning, so that stack storage is
  not freed.  Another is to store the pointer in a global or static local
  variable (which is not stored on the stack).

--Stan-
PREV INDEX NEXT