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 22:18
Read: times


 
#173801 - so is your problem solved or not?
Responding to: ???'s previous message
Munish Kumar said:
Anyways the problem is solved by changing buffer[2] to buffer[3] & assigning last byte 0.

Yes, that's it.

Now I don't quite understand what are you complaining of - is it the difference between simulation and the real thing?

The exact behaviour of your previous code, i.e. without having a terminating zero in buffer[2], depends on what is allocated after the buffer[2] array. It may quite well be a local variable, which hasn't been accessed yet; and, as such, that byte in RAM should have an undetermined value, given by how the RAM cells settle upon powerup, or from previous runs of the program if it has reached the routine overwriting this memory byte; it's very unlikely it will be zero. On the other hand, upon starting a simulator, they tend to fill the area which represents the RAM locations by zeros, which in this case would result in an unintentional terminating zero for your 2-byte "string" in buffer[].

I don't say this IS the explanation of what you've seen, but this may be one of the scenarios leading to perceived discrepancies between simulation and real running of a - basically incorrect - code.

Jan


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