0

我有以下结构:

typedef struct{
    char* name;
    int score;
}Student;

typedef struct{
    char* name;
    int score;
}TeachingAssistant;

我已经strdup将字符串放入结构中的name变量中Student

我想知道如何将strdup'dname指针变量移动到TeachingAssistant结构中,这样我就不必strdup再这样做了。

4

2 回答 2

1

strdup在填充结构时name,您可能仍想使用。TeachingAssistant如果你不这样做,并且只是复制指针,那么如果你free在一个结构中的指针另一个变得无效。否则,您必须实施方案来跟踪指针引用。

最好只strdup在您需要它的地方使用它,并free在您不再需要它时为每个副本提供它。

于 2016-01-27T16:24:20.980 回答
0
typedef struct{
  Student *XYZ;
  //char* name;
  //int score;
}TeachingAssistant;

除了现在的定义,您可以将指向 struct 的指针声明为 structStudent的成员TeachingAssistant,这样您就可以name使用它进行访问,而无需创建重复项。

于 2016-01-27T16:25:25.853 回答