在另一个函数中修改的结构的字符指针成员中获取值的方法如下:
typedef struct {
char* name;
int age;
} Person;
modifyPerson
来修改name
成员:void modifyPerson(Person* person, const char* newName) {
// 释放原有的name内存
free(person->name);
// 分配新的内存并复制新的name
person->name = malloc(strlen(newName) + 1);
strcpy(person->name, newName);
}
printPerson
来打印结构的内容:void printPerson(const Person* person) {
printf("Name: %s\n", person->name);
printf("Age: %d\n", person->age);
}
Person
结构的实例,并将其传递给modifyPerson
函数进行修改,然后再传递给printPerson
函数进行打印:int main() {
Person person;
person.name = malloc(strlen("John") + 1);
strcpy(person.name, "John");
person.age = 25;
modifyPerson(&person, "Alice");
printPerson(&person);
// 释放内存
free(person.name);
return 0;
}
输出结果将是:
Name: Alice
Age: 25
在这个例子中,我们通过传递指向结构的指针,在另一个函数中修改了结构的字符指针成员,并在主函数中获取并打印了修改后的值。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云