Я подумал, установив первый элемент
к нулю очистит весь
содержимое массива char.
Это не правильно, как вы обнаружили
Однако, это только устанавливает первый
элемент к нулю.
Точно!
Вам нужно использовать memset, чтобы очистить все данные, недостаточно установить одну из записей на ноль.
Однако, если для элемента массива значение null означает что-то особенное (например, при использовании строки с нулевым завершающим символом в), может быть достаточно установить нулевой первый элемент. Таким образом, любой пользователь массива поймет, что он пуст, хотя массив все еще содержит старые символы в памяти