Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/03/10 21:08
Read: times


 
#173799 - Think about it...
Responding to: ???'s previous message
Munish Kumar said:
I strongly suspected that it had something to do with null termination of the string.

Didn't you notice, then, in the debugger that the NUL termination was missing?

But I kept on thinking it was the job of the compiler to terminate strings with a null char.

What made you think that?

The Standard Library Function generally add a NUL termination if required - but you were building this string yourself - so it is up to you to build it properly!

Anyways the problem is solved by changing buffer[2] to buffer[3] & assigning last byte 0.

Correct - you must always make your arrays big enough to hold the NUL terminator!

And also doesn't strcat() append a null char to destination string?

Well, you can say that it appends a "new" NUL, or you can say that it copies the original NUL; the effect is identical - and, if the original NUL is missing, there will be trouble!

Think what happens when the original NUL is missing - how will strcat() know when to stop copying and, therefore, when to "append" its NUL...?



List of 35 messages in thread
TopicAuthorDate
Problem with strings in C            01/01/70 00:00      
   You missed a fundamental point on how 'C' does strings            01/01/70 00:00      
      I think you don't need to be mysterious here, Andy            01/01/70 00:00      
         Strings in 'C' *must* be NUL-terminated            01/01/70 00:00      
   A little whitespace goes a long way            01/01/70 00:00      
   conversion on top of conversion            01/01/70 00:00      
      Null termination            01/01/70 00:00      
         Think about it...            01/01/70 00:00      
         so is your problem solved or not?            01/01/70 00:00      
            "lucky" or "unlucky"?            01/01/70 00:00      
               rather            01/01/70 00:00      
                  Yes - that's what I meant!            01/01/70 00:00      
            That, in fact, IS it            01/01/70 00:00      
               how true            01/01/70 00:00      
               Debugger != Simulator            01/01/70 00:00      
               if that is true, find another job!            01/01/70 00:00      
                  Does Keil initialise non-static data?            01/01/70 00:00      
                     the very first thing ...            01/01/70 00:00      
                        this is not the case..            01/01/70 00:00      
                           Mr C hater:            01/01/70 00:00      
                              this IS part of the C-hatred            01/01/70 00:00      
                                 but you do            01/01/70 00:00      
                                    and what are the unzeroed values, then?            01/01/70 00:00      
                                       I have no idea            01/01/70 00:00      
                                    Many Reasons for not clearing (all of) RAM            01/01/70 00:00      
                                       I actually gave an example.            01/01/70 00:00      
                                       Another Example...            01/01/70 00:00      
                                          what I wold do            01/01/70 00:00      
                                             I Elect to Totally Disagree            01/01/70 00:00      
                                                a reply            01/01/70 00:00      
                                                   I'll take the time to reply when...            01/01/70 00:00      
                                                   It's too easy            01/01/70 00:00      
                                                      Auro variables are always undefined            01/01/70 00:00      
                                                Seconded!            01/01/70 00:00      
                                                   makes assumptions?            01/01/70 00:00      

Back to Subject List