Por que as strings em C ++ geralmente são terminadas com '\ 0'?

Em muitas amostras de código, as pessoas geralmente usam'\0' depois de criar um novo array char como este:

string s = "JustAString";
char* array = new char[s.size() + 1];
strncpy(array, s.c_str(), s.size());
array[s.size()] = '\0';

Por que devemos usar'\0' Aqui?