malloc six bytes for str, but str could have at most 14 bytes and one '\0'(1 byte) ? ,so confused