c++ 定义一个结构体 成员变量为动态分配的不定长数组
时间: 2023-10-16 13:10:43 浏览: 221
动态分配内存-数组、结构体与指针
可以使用指针和动态内存分配来实现结构体成员变量为动态分配的不定长数组,示例代码如下:
```c++
struct MyStruct {
int* arr; // 成员变量为指向动态分配数组的指针
int size; // 数组大小
MyStruct(int s) { // 构造函数中动态分配数组
size = s;
arr = new int[size];
}
~MyStruct() { // 析构函数中释放内存
delete[] arr;
}
};
```
在使用时,先创建结构体对象,并指定数组大小,然后就可以通过指针访问数组元素了,示例代码如下:
```c++
int main() {
MyStruct ms(10); // 创建结构体对象,并指定数组大小为10
for (int i = 0; i < ms.size; i++) {
ms.arr[i] = i; // 访问数组元素
}
return 0;
}
```
需要注意的是,在使用完后要记得调用析构函数释放内存,防止内存泄漏。
阅读全文