问题是这样的
我定义了2个结构体
typedef struct _Addr
{
char *City;
int Num;
}Addr;typedef struct _student
{
char name[5];
int age;
Addr *add;}Student;
现在我要赋值
Student *p;
p = new Student[20] ;//结构体数组
strcpy(p[2].add->City,"asdf");//这句编译没问题,就是不能执行,
请问应该怎么引用嵌套的结构体里的指针呢
我定义了2个结构体
typedef struct _Addr
{
char *City;
int Num;
}Addr;typedef struct _student
{
char name[5];
int age;
Addr *add;}Student;
现在我要赋值
Student *p;
p = new Student[20] ;//结构体数组
strcpy(p[2].add->City,"asdf");//这句编译没问题,就是不能执行,
请问应该怎么引用嵌套的结构体里的指针呢
这是个指针,它指向哪里?申请缓冲区,然后为它赋值,试试看。
p = new Student[20]还是它只是给Student分配了
char *City;是指针,需要指向一个缓冲区;如:char buf[100];City = buf;
或者你在定义结构体的时候就这样定义:char City[100];这时,就不需要其它操作了。
不过:Addr *add; add 也是指针,它也要指向缓冲区。