Structure Pointer
This code is crashing, please tell me for what all I need to assign memory.
Thanks
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct s1
{
char *p1;
};
struct s2
{
struct s1 *p2;
};
struct s3
{
struct s2 *p3;
}*p4=NULL;
int main()
{
char a='a';
p4=malloc(sizeof(struct s3));
p4->p3->p2->p1=&a;
printf("%c",*(p4->p3->p2->p1));
return 0;
}
10 Minutes
Discussion Span
ram619
Junior Poster in Training
75 posts since Mar 2010
Reputation Points: 18
Solved Threads: 0
Skill Endorsements: 0
You only allocated memory for p4. p3, p2, and p1 are all still uninitialized.
deceptikon
Challenge Accepted
3,452 posts since Jan 2012
Reputation Points: 822
Solved Threads: 473
Skill Endorsements: 57
Thread Solved. Posting code here so that it may help someone else.
:)
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct s1
{
char *p1;
};
struct s2
{
struct s1 *p2;
};
struct s3
{
struct s2 *p3;
}*p4;
int main()
{
char a='z';
p4=malloc(sizeof(struct s3));
p4->p3=malloc(sizeof(struct s2));
p4->p3->p2=malloc(sizeof(struct s1));
p4->p3->p2->p1=&a;
printf(" %c \n",*(p4->p3->p2->p1));
return 0;
}
ram619
Junior Poster in Training
75 posts since Mar 2010
Reputation Points: 18
Solved Threads: 0
Skill Endorsements: 0
Question Answered as of 3 Months Ago by
deceptikon