Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Free Nothing

Free Nothing

Scheduled Pinned Locked Moved The Weird and The Wonderful
14 Posts 10 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P PIEBALDconsult

    Aaaah, yeah... NULL could be a collection of references to be freed. :-D

    J Offline
    J Offline
    jamie550
    wrote on last edited by
    #5

    But wouldn't that free NULL twice?

    V 1 Reply Last reply
    0
    • J Jim Warburton

      Previously in the code both flag and fval were malloc'd

      flag = NULL;
      free(flag);

      fval = NULL;
      free(fval);

      this thing looks like it was written by an epileptic ferret Dave Kreskowiak

      S Offline
      S Offline
      Sharjith
      wrote on last edited by
      #6

      flag = NULL sets it to point to nothing. This makes the memory location lost. flag = (data_type*)malloc(sizeof(data_type)); This returns address of the memory allocated by malloc and assignes the address value to flag - something like flag = 0x2345cf. This is a valid address it is pointing to. When you say flag = NULL, flag points to nothing, then you cannot free flag because you cannot free something that does not exist. So first free(flag); then set flag = NULL; i.e. just change the sequence to- free(flag); flag = NULL; free(fval); fval = NULL; :)

      C 1 Reply Last reply
      0
      • J Jim Warburton

        Previously in the code both flag and fval were malloc'd

        flag = NULL;
        free(flag);

        fval = NULL;
        free(fval);

        this thing looks like it was written by an epileptic ferret Dave Kreskowiak

        V Offline
        V Offline
        Vasudevan Deepak Kumar
        wrote on last edited by
        #7

        :-D

        Vasudevan Deepak Kumar Personal Homepage
        Tech Gossips
        A pessimist sees only the dark side of the clouds, and mopes; a philosopher sees both sides, and shrugs; an optimist doesn't see the clouds at all - he's walking on them. --Leonard Louis Levinson

        1 Reply Last reply
        0
        • J jamie550

          But wouldn't that free NULL twice?

          V Offline
          V Offline
          Vasudevan Deepak Kumar
          wrote on last edited by
          #8

          In an effort to gain more memory by showing negative used space!

          Vasudevan Deepak Kumar Personal Homepage
          Tech Gossips
          A pessimist sees only the dark side of the clouds, and mopes; a philosopher sees both sides, and shrugs; an optimist doesn't see the clouds at all - he's walking on them. --Leonard Louis Levinson

          1 Reply Last reply
          0
          • S Sharjith

            flag = NULL sets it to point to nothing. This makes the memory location lost. flag = (data_type*)malloc(sizeof(data_type)); This returns address of the memory allocated by malloc and assignes the address value to flag - something like flag = 0x2345cf. This is a valid address it is pointing to. When you say flag = NULL, flag points to nothing, then you cannot free flag because you cannot free something that does not exist. So first free(flag); then set flag = NULL; i.e. just change the sequence to- free(flag); flag = NULL; free(fval); fval = NULL; :)

            C Offline
            C Offline
            Cedric Moonen
            wrote on last edited by
            #9

            :laugh: You didn't take your coffee this morning ? Did you forget to read the title of the forum ?

            Cédric Moonen Software developer
            Charting control [v1.4]

            L 1 Reply Last reply
            0
            • C Cedric Moonen

              :laugh: You didn't take your coffee this morning ? Did you forget to read the title of the forum ?

              Cédric Moonen Software developer
              Charting control [v1.4]

              L Offline
              L Offline
              leppie
              wrote on last edited by
              #10

              I wasn't so sure if I should tell him that ;P

              xacc.ide - now with TabsToSpaces support
              IronScheme - 1.0 alpha 3 out now

              1 Reply Last reply
              0
              • J Jim Warburton

                Previously in the code both flag and fval were malloc'd

                flag = NULL;
                free(flag);

                fval = NULL;
                free(fval);

                this thing looks like it was written by an epileptic ferret Dave Kreskowiak

                E Offline
                E Offline
                etkid84
                wrote on last edited by
                #11

                reminds me of the NRA and gun advocacy... it's the shooter not the gun it's the programmer not the language

                David

                D P 2 Replies Last reply
                0
                • E etkid84

                  reminds me of the NRA and gun advocacy... it's the shooter not the gun it's the programmer not the language

                  David

                  D Offline
                  D Offline
                  Dan Neely
                  wrote on last edited by
                  #12

                  "Ray guns don't vaporize Zorbonians. Zorbonians vaporize Zorbonians." Gary Larson

                  You know, every time I tried to win a bar-bet about being able to count to 1000 using my fingers I always got punched out when I reached 4.... -- El Corazon

                  1 Reply Last reply
                  0
                  • E etkid84

                    reminds me of the NRA and gun advocacy... it's the shooter not the gun it's the programmer not the language

                    David

                    P Offline
                    P Offline
                    PIEBALDconsult
                    wrote on last edited by
                    #13

                    Oh, great, now I have an opening for something I was thinking yesterday: A song that was playing used the phrase, "the wrong end of a gun". Does the anti-gun crew consider both ends of a gun to be "wrong"? :confused:

                    1 Reply Last reply
                    0
                    • J Jim Warburton

                      Previously in the code both flag and fval were malloc'd

                      flag = NULL;
                      free(flag);

                      fval = NULL;
                      free(fval);

                      this thing looks like it was written by an epileptic ferret Dave Kreskowiak

                      S Offline
                      S Offline
                      supercat9
                      wrote on last edited by
                      #14

                      Too bad 'free()' wasn't defined as returning a (void *). In that case, the code could have been written as: flag = free(flag); In case of any error other than a null pointer being passed in, free() could return the passed-in pointer. Similar behavior could have been used with fclose() [return a (FILE*)] and other such functions that destroy the object whose pointer is passed to them. Oh well, only a few decades too late now.... Where's my time machine?

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups