In C strings are null-terminated arrays of characters. You can manipulated them with a series of functions declared in the standard header file string.h, but there are two drawbacks:
The only way of defining new C strings at runtime is to allocate memory from the heap, and you are responsible for freeing the allocated memory when you no longer need the string. Failure to do so results in memory leaks that, over time, consume all the available memory and cause crashes. A common mistake associated with dynamically allocated strings is freeing a block of memory before you are done with it: everything ...