C++返回函数结构体指针
时间: 2023-09-02 21:12:30 浏览: 124
当我们需要从函数中返回一个结构体指针时,我们可以按照以下步骤进行:
1. 首先,定义一个结构体类型,例如:
```c
typedef struct {
int age;
char name[50];
} Person;
```
2. 然后,定义一个函数,并在函数中创建一个结构体对象,并给其分配内存空间,例如:
```c
Person* createPerson() {
Person* p = (Person*) malloc(sizeof(Person));
p->age = 25;
strcpy(p->name, "John Doe");
return p;
}
```
在这个函数中,我们使用了 `malloc` 函数来为结构体对象分配内存空间,并通过指针 `p` 来操作该对象的成员。
3. 最后,在调用函数的地方,我们可以将返回的结构体指针保存在另一个指针变量中,并通过该指针访问结构体的成员,例如:
```c
Person* personPtr = createPerson();
printf("Name: %s, Age: %d\n", personPtr->name, personPtr->age);
```
在这个例子中,我们通过 `personPtr` 指针访问了返回的结构体指针的成员,并打印了其值。
需要注意的是,当不再使用结构体指针时,记得使用 `free` 函数释放内存空间,以避免内存泄漏。
```c
free(personPtr);
```
这样,在函数中创建的结构体指针就可以正确地返回并在调用函数的地方使用了。
阅读全文