c++,有一个结构体stu,如何创建一个关于它的指针数组
时间: 2024-01-27 07:03:30 浏览: 71
可以按照以下方式创建一个指针数组:
```c++
struct stu {
int id;
std::string name;
float score;
};
int main() {
const int size = 10;
stu* arr[size];
for (int i = 0; i < size; ++i) {
arr[i] = new stu;
arr[i]->id = i + 1;
arr[i]->name = "Student " + std::to_string(i + 1);
arr[i]->score = (i + 1) * 10.0f;
}
// 使用指针数组
// 释放内存
for (int i = 0; i < size; ++i) {
delete arr[i];
}
return 0;
}
```
在上面的代码中,首先定义了一个名为`stu`的结构体。然后在`main()`函数中,定义了一个大小为10的指针数组`arr`,每个元素都是`stu`类型的指针。
接下来,通过循环分配内存并初始化每个结构体的成员变量。可以通过`arr[i]->id`、`arr[i]->name`和`arr[i]->score`访问每个结构体的成员变量。
最后,在使用完指针数组后,需要释放内存以避免内存泄漏。可以通过循环使用`delete`关键字来释放每个结构体的内存。
相关问题
我想表示ps指针是目前指向的是一个结构体数组stu[9]的条件,怎么书写
您可以使用如下的语句来表示 `ps` 指针目前指向的是一个结构体数组 `stu[9]`:
```c++
struct student stu[9];
struct student *ps = stu;
```
在这个例子中,我们定义了一个结构体数组 `stu[9]`,然后用 `ps` 指针指向了数组的第一个元素 `stu[0]`。由于结构体数组的元素类型是 `struct student`,所以 `ps` 的类型为 `struct student*`。现在,您可以通过 `ps` 指针来访问数组中的元素,例如:
```c++
ps->id = 1; // 设置第一个元素的 id 属性为 1
(ps+1)->id = 2; // 设置第二个元素的 id 属性为 2
```
这些操作都是针对数组中的元素进行的,因为 `ps` 指针指向了数组的第一个元素。
用c++ 定义一个结构体类型student(成员有:一个字符数组no、一个字符数组name,一个整型变量age,一个字符型变量 sex等,成员自己可以根据需要添加),在main函数内定义一个该结构体类型的变量,定义一个指向该变量的指针,给结构体变量各成员赋值并用指针将该变量的各成员值输出。
可以回答这个问题。
代码如下:
```c
#include <stdio.h>
#include <string.h>
struct student {
char no[20];
char name[20];
int age;
char sex;
};
int main() {
struct student stu = {"001", "Tom", 18, 'M'};
struct student *p = &stu;
strcpy(p->no, "002");
strcpy(p->name, "Jerry");
p->age = 19;
p->sex = 'F';
printf("no: %s\n", p->no);
printf("name: %s\n", p->name);
printf("age: %d\n", p->age);
printf("sex: %c\n", p->sex);
return 0;
}
```
输出结果为:
```
no: 002
name: Jerry
age: 19
sex: F
```
阅读全文