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. General Programming
  3. C / C++ / MFC
  4. array of char-newbie

array of char-newbie

Scheduled Pinned Locked Moved C / C++ / MFC
questiondata-structures
21 Posts 9 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.
  • Z Zac Howland

    // create a new character buffer initialized to 0's const unsigned int MAX_S_SIZE = 50; char s[MAX_S_SIZE] = {0}; // put some stuff in the buffer strcpy(s, "Hello, world!"); // clear the buffer memset(s, 0, MAX_S_SIZE); // NOTE: for an easier transition into UNICODE, the following works better const unsigned int MAX_S_SIZE = 50; TCHAR s[MAX_S_SIZE] = {0}; _tscpy(s, _T("Hello, World!")); memset(s, 0, MAX_S_SIZE * sizeof(TCHAR)); As a side note: you don't need to clear a buffer to overwrite it. It is more efficient to just overwrite it with the new data if your requirements allow for it. 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

    N Offline
    N Offline
    Nish Nishant
    wrote on last edited by
    #12

    Why is Zac's answer low-voted? It was an accurate answer, wasn't it? :confused: Regards, Nish


    Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
    Currently working on C++/CLI in Action for Manning Publications. Also visit the Ultimate Toolbox blog (New)

    Z A J 3 Replies Last reply
    0
    • N Nish Nishant

      Why is Zac's answer low-voted? It was an accurate answer, wasn't it? :confused: Regards, Nish


      Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
      Currently working on C++/CLI in Action for Manning Publications. Also visit the Ultimate Toolbox blog (New)

      Z Offline
      Z Offline
      Zac Howland
      wrote on last edited by
      #13

      Nishant Sivakumar wrote:

      Why is Zac's answer low-voted? It was an accurate answer, wasn't it?

      Yes, it is accurate. Some people get hung up on the terminology (actually, just the spelling) of NUL vs NULL. In my opinion, as long as you know that you are talking about putting a 0 somewhere, it doesn't matter whether you call it a "nul-terminator" or a "null-terminator". 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

      J 1 Reply Last reply
      0
      • N Nish Nishant

        Why is Zac's answer low-voted? It was an accurate answer, wasn't it? :confused: Regards, Nish


        Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
        Currently working on C++/CLI in Action for Manning Publications. Also visit the Ultimate Toolbox blog (New)

        A Offline
        A Offline
        antonaras
        wrote on last edited by
        #14

        Personally i found the answer of Zac very accurate and helpful

        1 Reply Last reply
        0
        • Z Zac Howland

          Nishant Sivakumar wrote:

          Why is Zac's answer low-voted? It was an accurate answer, wasn't it?

          Yes, it is accurate. Some people get hung up on the terminology (actually, just the spelling) of NUL vs NULL. In my opinion, as long as you know that you are talking about putting a 0 somewhere, it doesn't matter whether you call it a "nul-terminator" or a "null-terminator". 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

          J Offline
          J Offline
          James R Twine
          wrote on last edited by
          #15

          Personally, I did not vote you down.  Since you have no idea that I did or not, I have to guess that the mentioning my NUL vs. NULL point is but a coincidence - otherwise it would be a highly inappropriate assumption on your part.  Also, you will note that even if I did vote you down, there are 4 other votes there as well.  Did it ever occur to you that perhaps others know something that you do not?  (And that just because you do not know what someone else is talking about, that does not mean that they do not?)    For the record, I voted your two earlier posts a 4.  The fact that the first is now below that value may be indicative of something else.    NUL is one thing, NULL (in uppercase) is another.  They are not two ways to spell the same thing, even though they have the same value.  NUL is the name/mnemonic for an ASCII encoded character with a value of zero.  BS, ACK, and NAK are similar characters.  I am sure you (should?) know the history of NULL, even in C.    Consider this - my calling "C++" something else, like "G--; that C-ish language with the objects, and references, and virtual thingys" is not correct, even if I know that I am really talking about.    Peace! -=- James


          If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
          Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
          DeleteFXPFiles & CheckFavorites (Please rate this post!)

          N Z 2 Replies Last reply
          0
          • N Nish Nishant

            Why is Zac's answer low-voted? It was an accurate answer, wasn't it? :confused: Regards, Nish


            Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
            Currently working on C++/CLI in Action for Manning Publications. Also visit the Ultimate Toolbox blog (New)

            J Offline
            J Offline
            James R Twine
            wrote on last edited by
            #16

            It was mostly accurate, Nish... :P    Peace! -=- James


            If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
            Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
            DeleteFXPFiles & CheckFavorites (Please rate this post!)

            1 Reply Last reply
            0
            • J James R Twine

              Personally, I did not vote you down.  Since you have no idea that I did or not, I have to guess that the mentioning my NUL vs. NULL point is but a coincidence - otherwise it would be a highly inappropriate assumption on your part.  Also, you will note that even if I did vote you down, there are 4 other votes there as well.  Did it ever occur to you that perhaps others know something that you do not?  (And that just because you do not know what someone else is talking about, that does not mean that they do not?)    For the record, I voted your two earlier posts a 4.  The fact that the first is now below that value may be indicative of something else.    NUL is one thing, NULL (in uppercase) is another.  They are not two ways to spell the same thing, even though they have the same value.  NUL is the name/mnemonic for an ASCII encoded character with a value of zero.  BS, ACK, and NAK are similar characters.  I am sure you (should?) know the history of NULL, even in C.    Consider this - my calling "C++" something else, like "G--; that C-ish language with the objects, and references, and virtual thingys" is not correct, even if I know that I am really talking about.    Peace! -=- James


              If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
              Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
              DeleteFXPFiles & CheckFavorites (Please rate this post!)

              N Offline
              N Offline
              Nish Nishant
              wrote on last edited by
              #17

              Raymond Chen says null-terminated string here :- http://blogs.msdn.com/oldnewthing/archive/2004/08/24/219444.aspx[^] Most of MSDN documentation says null-terminated string too. Maybe that's why people use that (null I mean) more often. Regards, Nish


              Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
              Currently working on C++/CLI in Action for Manning Publications. Also visit the Ultimate Toolbox blog (New)

              J 1 Reply Last reply
              0
              • J James R Twine

                Personally, I did not vote you down.  Since you have no idea that I did or not, I have to guess that the mentioning my NUL vs. NULL point is but a coincidence - otherwise it would be a highly inappropriate assumption on your part.  Also, you will note that even if I did vote you down, there are 4 other votes there as well.  Did it ever occur to you that perhaps others know something that you do not?  (And that just because you do not know what someone else is talking about, that does not mean that they do not?)    For the record, I voted your two earlier posts a 4.  The fact that the first is now below that value may be indicative of something else.    NUL is one thing, NULL (in uppercase) is another.  They are not two ways to spell the same thing, even though they have the same value.  NUL is the name/mnemonic for an ASCII encoded character with a value of zero.  BS, ACK, and NAK are similar characters.  I am sure you (should?) know the history of NULL, even in C.    Consider this - my calling "C++" something else, like "G--; that C-ish language with the objects, and references, and virtual thingys" is not correct, even if I know that I am really talking about.    Peace! -=- James


                If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
                Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
                DeleteFXPFiles & CheckFavorites (Please rate this post!)

                Z Offline
                Z Offline
                Zac Howland
                wrote on last edited by
                #18

                I wasn't referring to you personally. I actually hadn't even read your response yet when I posted that. On similar topics in the past (not necessarily on this forum, but others), I've been flamed for the nul vs null argument. My point is that as long as the reader understands what you are saying, it doesn't matter how you spell it. And yes, I'm well aware of the history of ASCII characters ... use to have to use them all the time in my last job (ACK/NAK especially). 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

                1 Reply Last reply
                0
                • N Nish Nishant

                  Raymond Chen says null-terminated string here :- http://blogs.msdn.com/oldnewthing/archive/2004/08/24/219444.aspx[^] Most of MSDN documentation says null-terminated string too. Maybe that's why people use that (null I mean) more often. Regards, Nish


                  Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                  Currently working on C++/CLI in Action for Manning Publications. Also visit the Ultimate Toolbox blog (New)

                  J Offline
                  J Offline
                  James R Twine
                  wrote on last edited by
                  #19

                  Yep - lots of people also do not come to a complete stop at a stop sign, and still manage to get someplace in one piece. :) And you should know by now that you should never use or site Microsoft as a model for anything software-related! :P :P :P    Peace! -=- James


                  If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
                  Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
                  DeleteFXPFiles & CheckFavorites (Please rate this post!)

                  1 Reply Last reply
                  0
                  • J James R Twine

                    The standard string-handling functions like strcpy(...), strcat(...), sprintf(...), etc. will write a terminating NUL (not a NULL[^]) into the buffer you are using.    So if you use them, you normally do not have to worry about previous data causing issues (unless you are concerned about security, but that is another issue).  Here is an example:

                    char caBuffer[ 50 ];

                    strcpy( caBuffer, "A Looooooooong String" );
                    strcpy( caBuffer, "A Short String" );
                    puts( caBuffer );

                    After the first call to strcpy(..) the buffer will contain (NUL is represented by Ø):

                    0123456789012345678901
                    

                    -and after the second call to strcpy(...), the buffer will likely contain:

                    0123456789012345678901
                    

                    When the string is shown using puts(...), it will display A Short String, even though the actual memory for the buffer has the extra data in it.  Since string-handling functions use NUL as an end-of-string indicator, puts(...) stops when it gets to the first NUL it encounters.    Peace! -=- James


                    If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
                    Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
                    DeleteFXPFiles & CheckFavorites (Please rate this post!)

                    J Offline
                    J Offline
                    jhwurmbach
                    wrote on last edited by
                    #20

                    James R. Twine wrote:

                    write a terminating NUL (not a NULL[^])

                    You really got a obsession there, right? :-D


                    "We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation." -- Caius Petronius, Roman Consul, 66 A.D.

                    J 1 Reply Last reply
                    0
                    • J jhwurmbach

                      James R. Twine wrote:

                      write a terminating NUL (not a NULL[^])

                      You really got a obsession there, right? :-D


                      "We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation." -- Caius Petronius, Roman Consul, 66 A.D.

                      J Offline
                      J Offline
                      James R Twine
                      wrote on last edited by
                      #21

                      jhwurmbach wrote:

                      You really got a obsession there, right? :)

                      Yup!  It is what separates the wheat from the chaff... :)    Peace! -=- James


                      If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
                      Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
                      DeleteFXPFiles & CheckFavorites (Please rate this post!)

                      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