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. The Lounge
  3. Viewers of a nervous disposition should look away now

Viewers of a nervous disposition should look away now

Scheduled Pinned Locked Moved The Lounge
help
15 Posts 9 Posters 1 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.
  • L Lost User

    A recent post was about OP's code getting a crtisvalidheappointer error in a C code program. The code was using malloc/calloc and free, so it was a fair guess what was going wrong. One or two answers and comments were posted with the usual suggestions. The OP then posted the following:

    Quote:

    thanks but I solved in this way: if (pchTesto != NULL) { pchTesto = NULL; delete pchTesto; } if (pchBuffOut != NULL) { pchBuffOut = NULL; delete pchBuffOut; }

    :omg:

    CPalliniC Offline
    CPalliniC Offline
    CPallini
    wrote on last edited by
    #4

    "making good use of the commutative property of the delete operator" :laugh: :laugh: :laugh:

    "In testa che avete, Signor di Ceprano?" -- Rigoletto

    In testa che avete, signor di Ceprano?

    1 Reply Last reply
    0
    • L Lost User

      A recent post was about OP's code getting a crtisvalidheappointer error in a C code program. The code was using malloc/calloc and free, so it was a fair guess what was going wrong. One or two answers and comments were posted with the usual suggestions. The OP then posted the following:

      Quote:

      thanks but I solved in this way: if (pchTesto != NULL) { pchTesto = NULL; delete pchTesto; } if (pchBuffOut != NULL) { pchBuffOut = NULL; delete pchBuffOut; }

      :omg:

      C Offline
      C Offline
      charlieg
      wrote on last edited by
      #5

      wow. reminds me of the time when a coworker, who was a bit of a PITA - never listened to good advice, was convinced he had found a bug in the compiler. Having had this fantasy once or twice myself, I've learned that it is almost certainly not the compilier :). Myself and one other took a look at his code and immediately found a buffer overrun. He insisted that it always worked correctly before and that could not be the issue. but back to that code fragment - :omg:

      Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

      Mircea NeacsuM D J 3 Replies Last reply
      0
      • D den2k88

        Big whoopsie moment, I had a few of them, enugh that I made my own macro DDELETENULL(x) to avoid the same mistake.

        #define DDELETENULL(x) if (x != NULL) {delete(x); x = NULL;}

        I had a DFREENULL(x) which was identical but with free.

        GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X The shortest horror story: On Error Resume Next

        Mircea NeacsuM Offline
        Mircea NeacsuM Offline
        Mircea Neacsu
        wrote on last edited by
        #6

        My dear Watson, it's pretty sure DFREENULL(x) came before the DDELETENULL(x) and the if statement got carried away. In C++ you can delete NULL pointers without hearing a peep from the compiler. :laugh:

        Mircea

        D 1 Reply Last reply
        0
        • Mircea NeacsuM Mircea Neacsu

          My dear Watson, it's pretty sure DFREENULL(x) came before the DDELETENULL(x) and the if statement got carried away. In C++ you can delete NULL pointers without hearing a peep from the compiler. :laugh:

          Mircea

          D Offline
          D Offline
          den2k88
          wrote on last edited by
          #7

          First, it was C++/98, mostly (VisualStudio 6, in 201x, ugh) and it would create issues. Second, I do clean programming. If a pointer is NULL I don't delete it, despite what the compiler says. It's simply wrong. Third, DDELETENULL came first because I needed it before I realized I also had some pointers to deallocate with free (mostly the ones allocated with _mm_malloc).

          GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X The shortest horror story: On Error Resume Next

          1 Reply Last reply
          0
          • C charlieg

            wow. reminds me of the time when a coworker, who was a bit of a PITA - never listened to good advice, was convinced he had found a bug in the compiler. Having had this fantasy once or twice myself, I've learned that it is almost certainly not the compilier :). Myself and one other took a look at his code and immediately found a buffer overrun. He insisted that it always worked correctly before and that could not be the issue. but back to that code fragment - :omg:

            Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

            Mircea NeacsuM Offline
            Mircea NeacsuM Offline
            Mircea Neacsu
            wrote on last edited by
            #8

            charlieg wrote:

            Having had this fantasy once or twice myself,

            At one point I put a PostIt note on my monitor: "The stupid is on the other side of the screen" :laugh:

            Mircea

            K 1 Reply Last reply
            0
            • C charlieg

              wow. reminds me of the time when a coworker, who was a bit of a PITA - never listened to good advice, was convinced he had found a bug in the compiler. Having had this fantasy once or twice myself, I've learned that it is almost certainly not the compilier :). Myself and one other took a look at his code and immediately found a buffer overrun. He insisted that it always worked correctly before and that could not be the issue. but back to that code fragment - :omg:

              Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

              D Offline
              D Offline
              den2k88
              wrote on last edited by
              #9

              In the embedded world sometimes we actually find bugs in the compiler, though they are easier to spot since the disassembly is much leaner.

              GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X The shortest horror story: On Error Resume Next

              C 1 Reply Last reply
              0
              • L Lost User

                A recent post was about OP's code getting a crtisvalidheappointer error in a C code program. The code was using malloc/calloc and free, so it was a fair guess what was going wrong. One or two answers and comments were posted with the usual suggestions. The OP then posted the following:

                Quote:

                thanks but I solved in this way: if (pchTesto != NULL) { pchTesto = NULL; delete pchTesto; } if (pchBuffOut != NULL) { pchBuffOut = NULL; delete pchBuffOut; }

                :omg:

                S Offline
                S Offline
                Single Step Debugger
                wrote on last edited by
                #10

                It's like taking leak in the morning and then waking up.

                Advertise here – minimum three posts per day are guaranteed.

                1 Reply Last reply
                0
                • D den2k88

                  In the embedded world sometimes we actually find bugs in the compiler, though they are easier to spot since the disassembly is much leaner.

                  GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X The shortest horror story: On Error Resume Next

                  C Offline
                  C Offline
                  charlieg
                  wrote on last edited by
                  #11

                  I have heard of this happening but never experienced it. This had to do with the C compiler for OpenVMS. The people that worked on DEC's compilers were legendary.

                  Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

                  1 Reply Last reply
                  0
                  • C charlieg

                    wow. reminds me of the time when a coworker, who was a bit of a PITA - never listened to good advice, was convinced he had found a bug in the compiler. Having had this fantasy once or twice myself, I've learned that it is almost certainly not the compilier :). Myself and one other took a look at his code and immediately found a buffer overrun. He insisted that it always worked correctly before and that could not be the issue. but back to that code fragment - :omg:

                    Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

                    J Offline
                    J Offline
                    jschell
                    wrote on last edited by
                    #12

                    charlieg wrote:

                    he had found a bug in the compiler. Having had this fantasy once or twice myself, I've learned that it is almost certainly not the compilier

                    Very long time ago I found a bug in the C++ compiler I was using. So I wrote a letter to the company (again long time ago.) I carefully pointed out how the C++ compiler did not do what Stroustrup documented in "The C++ Programming Language". The president of the company (I suspect the only employee) wrote back to tell me that Stroustrup was wrong. Years later when the ANSI C++ spec was finalized I saw that Stroustrup was still right.

                    C 1 Reply Last reply
                    0
                    • Mircea NeacsuM Mircea Neacsu

                      charlieg wrote:

                      Having had this fantasy once or twice myself,

                      At one point I put a PostIt note on my monitor: "The stupid is on the other side of the screen" :laugh:

                      Mircea

                      K Offline
                      K Offline
                      Kelly Herald
                      wrote on last edited by
                      #13

                      I usually refer to the acronym PICNIC. Problem In Chair Not In Computer

                      Kelly Herald Software Developer

                      Mircea NeacsuM 1 Reply Last reply
                      0
                      • K Kelly Herald

                        I usually refer to the acronym PICNIC. Problem In Chair Not In Computer

                        Kelly Herald Software Developer

                        Mircea NeacsuM Offline
                        Mircea NeacsuM Offline
                        Mircea Neacsu
                        wrote on last edited by
                        #14

                        I knew it as PBKAC[^] but I like your acronym better :laugh: My formulation leaves a chance to sensitive souls to imagine that problem is behind the screen... as if ;P

                        Mircea

                        1 Reply Last reply
                        0
                        • J jschell

                          charlieg wrote:

                          he had found a bug in the compiler. Having had this fantasy once or twice myself, I've learned that it is almost certainly not the compilier

                          Very long time ago I found a bug in the C++ compiler I was using. So I wrote a letter to the company (again long time ago.) I carefully pointed out how the C++ compiler did not do what Stroustrup documented in "The C++ Programming Language". The president of the company (I suspect the only employee) wrote back to tell me that Stroustrup was wrong. Years later when the ANSI C++ spec was finalized I saw that Stroustrup was still right.

                          C Offline
                          C Offline
                          charlieg
                          wrote on last edited by
                          #15

                          priceless. That guy has some brass balls.

                          Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

                          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