Это касается строк в C++. Я не касался C/C++ в течение очень долгого времени; infact Я занимался программированием на этих языках только в течение первого года обучения в колледже около 7 лет назад.Происходит ли переполнение буфера в строках C++?
В C для хранения строк мне приходилось создавать массивы символов (будь то статические или динамические, это не вызывает беспокойства). Таким образом, это означало бы, что мне нужно заранее угадать размер строки, которую будет содержать массив. Ну, я применил тот же подход в C++. Я знал, что существует класс std :: string, но я никогда не использовал его.
Вопрос в том, что, поскольку мы никогда не объявляем размер массива/строки в классе std :: string, происходит переполнение буфера при записи на него. Я имею в виду, что в C, если размер массива был 10, и я набрал более 10 символов на консоли, тогда дополнительные данные будут записываться в другое место памяти другого объекта, которое находится рядом с массивом. Может ли подобное происходить в std :: string при использовании объекта cin.
Должен ли я угадывать размер строки перед рукой на C++ при использовании std :: string?
Хорошо! Спасибо вам всем. На этой странице нет ни одного правильного ответа (много разных объяснений), поэтому я не выбираю ни одного такого как такового. Я доволен первым 5. Заботьтесь!
Нет, не беспокойтесь. –
Значит, мне не нужно угадывать размер строки перед рукой? – Jazz