我们如何在嵌套结构中使用指针?
我在下面给出的代码中创建了两个结构,如何访问st_no
的元素?
彻底解释嵌套结构。
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char st_no[22];
int no;
}address;
typedef struct
{
char name[15];
int mark;
address addr;
}student;
int main (void)
{
student *selva;
strcpy(selva->name, "ajay");
strcpy(selva->addr.st_no,"3rd st");
printf("%s",selva->name);
return 0;
}
答案 0 :(得分:3)
你只有一个指向学生的指针,而不是一个真正的学生。要动态分配,您需要:
student * selva = malloc(sizeof(student)) // be sure to free this later
然后你可以这样做:
strcpy(selva->addr.st_no, "3rd st")
或者,如果您不需要动态地执行此操作,则可以在堆栈上创建变量,如下所示:
student selva
然后复制到st_no
你可以:
strcpy(selva.addr.st_no, "3rd st")
答案 1 :(得分:0)
使用如下
student *selva;
selva = malloc(sizeof(student));
strcpy(selva->name, "ajay");
strcpy(selva->addr.st_no,"3rd st");