What will be the output of the following C code?
#include <stdio.h>
int main()
{
struct p
{
char *name;
struct p *next;
};
struct p *ptrary[10];
struct p p, q;
p.name = "xyz";
p.next = NULL;
ptrary[0] = &p;
q.name = (char*)malloc(sizeof(char)*3);
strcpy(q.name, p.name);
q.next = &q;
ptrary[1] = &q;
printf("%s\n", ptrary[1]->next->next->name);
}
#include <stdio.h>
int main()
{
struct p
{
char *name;
struct p *next;
};
struct p *ptrary[10];
struct p p, q;
p.name = "xyz";
p.next = NULL;
ptrary[0] = &p;
q.name = (char*)malloc(sizeof(char)*3);
strcpy(q.name, p.name);
q.next = &q;
ptrary[1] = &q;
printf("%s\n", ptrary[1]->next->next->name);
}A. Compile time error
B. Depends on the compiler
C. Undefined behaviour
D. xyz
Answer: Option D

Join The Discussion