Операция new 2

Доброго времени суток всем!
Вопрос такой: почему операция new выделяет больше памяти чем я запрашиваю?альтернативный текст

пытается вывести строку по такому-то адресу и, скорее всего, выводит до 0. Плюс ко всему, никто не гарантирует, что будет выделенно именно столько, сколько Вы запросили. Может быть выделены дополнительные участки, например, для хранения размера выделенной памяти.

А есть ли возможность отбросить лишнее?
Допустим мне нужно инициализировать этот указатель строкой

альтернативный текст

очевидное решение выделить память и для завершающего '\0' и мусор отбросится сам собою.
Есть ли другое решение, как отбросить этот мусор?

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.