malloc question

Randi Botse <[email protected]> Tue, 26 Apr 2011 17:33:50 +0700
Newsgroups org.kernel.vger.linux-c-programming
Message-ID <[email protected]>
Hi All,

I want to ask malloc() behaviour, consider these codes;

...
char *ptr = malloc(1);
strcpy(ptr, "what");
puts(ptr);
....

Confusingly, the strcpy() copied all bytes to ptr, but I just manage
to allocate ptr only for 1 byte, I guess I will have segfault here,
why this happen? why the string successfully copied into ptr? , is
those code legal?

Randi,