C Tutorial Large strings

Data types in C
Arrays in C
Pointers in C
Pointer Dereferencing
The & Operator
NULL
Uninitialized Pointers
Using Pointers
C Strings
String Code Example
Large Strings

Char type pointers
TypeDef



 
 
 

 

HOME
 

The convention with C strings is that the owner of the string is responsible for allocating

array space which is "large enough" to store whatever the string will need to store. Most

routines do not check that size of the string memory they operate on, they just assume its

big enough and blast away. Many, many programs contain declarations like the

following...

 

{

char localString[1000];

...

}

 

 

The program works fine so long as the strings stored are 999 characters or shorter.

Someday when the program needs to store a string which is 1000 characters or longer,

then it crashes. Such array-not-quite-big-enough problems are a common source of bugs,

and are also the source of so called "buffer overflow" security problems. This scheme has

the additional disadvantage that most of the time when the array is storing short strings,

95% of the memory reserved is actually being wasted. A better solution allocates the

string dynamically in the heap, so it has just the right size.

 

To avoid buffer overflow attacks, production code should check the size of the data first,

to make sure it fits in the destination string.

Want To Know more with

Video ???