从函数返回结构指针(数组)并打印出数据,可以通过以下步骤实现:
typedef struct {
char name[20];
int age;
} Person;
Person* createPersonArray(int size) {
Person* arr = (Person*)malloc(size * sizeof(Person));
// 初始化数据
for (int i = 0; i < size; i++) {
sprintf(arr[i].name, "Person%d", i+1);
arr[i].age = 20 + i;
}
return arr;
}
int main() {
int size = 5;
Person* arr = createPersonArray(size);
// 打印数据
for (int i = 0; i < size; i++) {
printf("Name: %s, Age: %d\n", arr[i].name, arr[i].age);
}
// 释放内存
free(arr);
return 0;
}
以上代码示例中,我们通过createPersonArray函数创建了一个包含5个Person结构体的数组,并初始化了每个结构体的姓名和年龄。然后,在主函数中遍历该数组,并打印出每个结构体的数据。最后,记得释放动态分配的内存。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云