Changes between Version 11 and Version 12 of Docs/Prog/Manual/ApplicationLibraries/lib825ev/String


Ignore:
Timestamp:
08/21/10 10:05:13 (14 years ago)
Author:
Don Wilson
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Docs/Prog/Manual/ApplicationLibraries/lib825ev/String

    v11 v12  
    1313In the above example the szMsg and szID character arrays are each allocated 10 bytes. C strings require a null character at the end to tell various functions such as strcpy when to stop reading characters. This means szMsg and szID can contain a maximum of 9 characters each. If the ''strcpy(szID, "123")'' is changed to ''strcpy(szID, "1234567890")'' the compiler will generate code that writes the null character into an invalid memory location. When the program is executed this may crash the indicator immediately when this code executes, it may not cause a crash until some other time in execution when that memory location becomes important, or it may cause some other strange behavior in the program. If the strcpy is changed to ''strcpy(szID, "123456")'' szID will not overflow, but szMsg will overflow in the sprintf statement that follows.
    1414
    15 The 825 also supports a newer C++ string type std::string. Using std::string does not require as much diligence from the programmer. The string will automatically allocate more memory and grow if needed by an assignment. The operations are also more like the BASIC language so this is helpful for programmers who are not as skilled in C/C++.
     15825 applications may also be compiled using the newer C++ string type: std::string. Using std::string does not require as much diligence from the programmer. The string will automatically allocate more memory and grow if needed by an assignment. The operations are also more like the BASIC language so this is helpful for programmers who are not as skilled in C/C++.
    1616
    1717{{{