Почему strcpy «работает» при записи в память malloc, которая недостаточно велика? [Дубликат]
Возможный дубликат:
Почему это намеренно неправильное использование strcpy не терпит неудачу ужасно?
Ниже смотрите ниже код:
char* stuff = (char*)malloc(2);
strcpy(stuff,"abc");
cout<<"The size of stuff is : "<<strlen(stuff);
Несмотря на то, что я назначил 2 байта для содержимого, почему strcpy по-прежнему работает, и вывод strlen равен 3. Разве это не должно выбрасывать что-то вроде индекса за пределы?