C++结构体数组分配内存
时间: 2023-07-11 11:04:22 浏览: 312
基于C#调用c++Dll结构体数组指针的问题详解
在C++中,结构体数组可以使用动态内存分配来分配内存。以下是一个示例代码:
```c++
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
};
int main() {
int n = 3;
Person* people = new Person[n];
for (int i = 0; i < n; i++) {
cout << "Enter name and age of person " << i+1 << endl;
cin >> people[i].name >> people[i].age;
}
for (int i = 0; i < n; i++) {
cout << "Person " << i+1 << ": " << people[i].name << ", " << people[i].age << endl;
}
delete[] people;
return 0;
}
```
在这个例子中,我们首先定义了一个 `Person` 结构体,然后通过 `new` 运算符动态分配了一个长度为 `n` 的 `Person` 数组。接下来,我们使用循环来读取每个人的姓名和年龄,并将它们存储在结构体数组中。最后,我们使用另一个循环来遍历结构体数组,并输出每个人的姓名和年龄。在程序末尾,我们使用 `delete[]` 运算符释放了我们分配的内存。
需要注意的是,如果你使用动态分配内存来分配结构体数组,你需要手动释放内存,否则可能会导致内存泄漏。
阅读全文