Structures, Unions, Enums - Programming

Q1:

Will the following code work?
#include<stdio.h>
#include<malloc.h>

struct emp
{
    int len;
    char name[1];
};
int main()
{
    char newname[] = 'Rahul';
    struct emp *p = (struct emp *) malloc(sizeof(struct emp) -1 +
                    strlen(newname)+1);

    p->len = strlen(newname);
    strcpy(p -> name, newname);
    printf('%d %s\n', p->len, p->name);
    return 0;
}

A Yes

B No

ANS:A - Yes

The program allocates space for the structure with the size adjusted so that the name field can hold the requested name.