Что случилось, когда мы не включили '\ 0' в конец строки в C?

В C, когда я инициализирую свой массив таким образом:

char full_name[] = {
    't', 'o', 'a', 'n'
};

и распечатать его сprintf("%s", full_name);

и запустить его сValgrind Я получил ошибку

Неинициализированное значение было создано при выделении стека

Почему это происходит?