Top.Mail.Ru
Ответы

Перезапись нуль терминатора в строковом массиве.(Си)

Применяется ли перезапись нуль терминатора в строковом массиве?
Для экономии памяти или ещё может для чего.
char arr[3];
arr[0]='1';
arr[1]='2';
arr[2]='3';
Здесь я перезаписал нуль терминатор arr[2]='3';
Или это неграмотно и не нужно?

По дате
По рейтингу
Аватар пользователя
Новичок

По ситуации. Если нужно вывести часть строки - делаешь копию оригинальной и вытворяешь всё, что хочешь. Пример долго искать

Аватар пользователя
Высший разум

Это называется переполнением, которое приводит к неопределённому поведению программы. 0-терминатор – это святое и удалять его из строки никак нельзя. В Майкрософт даже придумали на этот случай потокобезопасные функции с суффиксом _s

Аватар пользователя
Просветленный

и дальше что с этим чудом делаешь?
по факту это уже больше не сишная строка, а просто массив чаров, т. е. во всякие строковые функции это уже не запихнуть