C++动态分配结构体中数组的内存
时间: 2024-10-13 17:11:14 浏览: 8
在C++中,如果你想动态分配结构体类型的数组,可以使用`new`运算符来请求内存,并使用指针来指向这个数组。例如,假设有一个名为`MyStruct`的结构体,它有一个整数数组`int_array`,你可以这样做:
```cpp
#include <iostream>
// 定义结构体
struct MyStruct {
int size;
int* int_array; // 指向数组的指针
};
int main() {
size_t numElements; // 用户输入数组的大小
std::cout << "Enter the number of elements: ";
std::cin >> numElements;
// 动态分配结构体数组
MyStruct* dynamicArray = new MyStruct[numElements];
// 初始化结构体
for (size_t i = 0; i < numElements; ++i) {
dynamicArray[i].size = i; // 假设这里只是作为例子,实际应用中可能会有不同的初始化
dynamicArray[i].int_array = new int[numElements]; // 分配单独的数组空间
dynamicArray[i].int_array[i] = i; // 设置数组元素
}
// 使用完毕记得删除内存
for (size_t i = 0; i < numElements; ++i) {
delete[] dynamicArray[i].int_array; // 删除每个小数组
}
delete[] dynamicArray; // 删除整个结构体数组
return 0;
}
阅读全文