Почему strcpy «работает» при записи в память malloc, которая недостаточно велика? [Дубликат]

Возможный дубликат:
Почему это намеренно неправильное использование strcpy не терпит неудачу ужасно?

Ниже смотрите ниже код:

char* stuff = (char*)malloc(2);
 strcpy(stuff,"abc");
 cout<<"The size of stuff is : "<<strlen(stuff);

Несмотря на то, что я назначил 2 байта для содержимого, почему strcpy по-прежнему работает, и вывод strlen равен 3. Разве это не должно выбрасывать что-то вроде индекса за пределы?

Ответы на вопрос(5)

Ваш ответ на вопрос