我有以下结构:
typedef struct{
char* name;
int score;
}Student;
typedef struct{
char* name;
int score;
}TeachingAssistant;
我已strdup
在name
结构中的Student
变量中添加了一个字符串。
我想知道如何将strdup
'd name
指针变量移动到TeachingAssistant
结构,这样我就不必再次strdup
了。
答案 0 :(得分:1)
在strdup
结构中填充name
时,您可能仍希望使用TeachingAssistant
。如果不这样做,只需复制指针,那么如果free
指针在一个结构中,则另一个结构中的指针变为无效。你必须实现方案来跟踪指针引用。
最好只需strdup
您需要的字符串,并在不再需要时为每个副本free
。
答案 1 :(得分:0)
typedef struct{
Student *XYZ;
//char* name;
//int score;
}TeachingAssistant;
您可以将结构Student
的结构声明为结构TeachingAssistant
的成员,而不是现在的定义,这样您就可以使用它来访问name
而无需创建重复。