Форум программистов, компьютерный форум CyberForum.ru

Почему размер символьного массива должен быть больше на 1 символ, а не на 2? - C++

Восстановить пароль Регистрация
 
Jimmy
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 11
17.09.2012, 05:19     Почему размер символьного массива должен быть больше на 1 символ, а не на 2? #1
Привет! Пока читал учебник Шилдта, возник вопрос:
Объявляя символьный массив, который будет содержать строку с завершающимся нулем, вы должны задать ему длину на один символ больше, чем у самой длинной помещаемой в него строки. Если например, вы хотите объявить массив str, в котором будет находиться 10-символьная строка, то вы должны написать следующее:
C++
1
char str[11];
Почему Герберт Шилдт говорит, что следует задать длину на один символ больше, хотя как я понимаю, получается на два, если считать с нулевого индекса. Тогда где находится завершающийся нуль? В str[10] или str[11]?

И второй вопрос:
Чем завершается массив целых чисел?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2012, 05:19     Почему размер символьного массива должен быть больше на 1 символ, а не на 2?
Посмотрите здесь:

C++ Размер символьного массива
Как скопировать символ из символьного массива в другой массив C++
Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента) C++
Описать абстрактный класс породить от него еще два,один должен остаться абстрактным,другой должен быть способен пораждать объекты C++
В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить: C++
C++ Почему в setnamedisc нужно использовать char * для установки значения, а при возвращении значения тип метода должен быть char* ?
Длина short[] - Почему размер массива внутри make отличается? C++
C++ Удалить символ из символьного массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.09.2012, 06:09     Почему размер символьного массива должен быть больше на 1 символ, а не на 2? #2
Цитата Сообщение от Jimmy Посмотреть сообщение
Чем завершается массив целых чисел?
Ничем.
Цитата Сообщение от Jimmy Посмотреть сообщение
Почему Герберт Шилдт говорит, что следует задать длину на один символ больше, хотя как я понимаю, получается на два, если считать с нулевого индекса.
Когда объявляется массив, то число в скобках - количество элементов массива, а не максимальный индекс, т.е. : char str[11]; - это массив на 11 символов (10 - символов строки + '\0'). Максимальный индекс такого массива равен 10, где и находится '\0' . Символы самой строки располагаются с str[0] по str[9] включительно. str[11] - это уже выход за границу массива.
Jimmy
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 11
17.09.2012, 06:25  [ТС]     Почему размер символьного массива должен быть больше на 1 символ, а не на 2? #3
Спасибо! Я забыл, что число в скобках это количество элементов массива, исчисляемое не от 0, а от 1.
Yandex
Объявления
17.09.2012, 06:25     Почему размер символьного массива должен быть больше на 1 символ, а не на 2?
Ответ Создать тему
Опции темы

Текущее время: 01:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru