Skip to content

Instantly share code, notes, and snippets.

@monolithed
Last active December 15, 2015 14:59
Show Gist options
  • Save monolithed/5278236 to your computer and use it in GitHub Desktop.
Save monolithed/5278236 to your computer and use it in GitHub Desktop.
char *array = ::new char [10];

Итак, 10 элементов массива типа char алоцируются на кучу и указатель помещается на стек.

Из-за отсутствия символа конца строки выделяется больше памяти чем нужно и как следствие мусор из соседних ячеек памяти дает о себе знать!

Чтобы исправить данное недоразумение, следует всегда использовать символ конца строки:

array[9] = '\0';

Итого:

static const std::size_t size = 10;
char *array = ::new char [size];
array[size - 1] = '\0';
delete[] array;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment