0

我们如何在嵌套结构中使用指针?

我在下面给出的代码中创建了两个结构,我怎样才能访问的元素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;
}
4

2 回答 2

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")
于 2013-07-10T13:13:37.150 回答
0

像下面这样使用它

student *selva;
selva = malloc(sizeof(student));
strcpy(selva->name, "ajay");
strcpy(selva->addr.st_no,"3rd st");
于 2013-07-10T13:15:02.590 回答