C++ 结构体里的string 声明长度
在C++中,结构体里的string数组可以使用以下方式声明长度:
- 使用常量表达式声明长度
struct MyStruct {
string myStringArray[10]; // 声明一个长度为10的string数组
};
- 使用宏定义声明长度
#define ARRAY_LENGTH 5
struct MyStruct {
string myStringArray[ARRAY_LENGTH]; // 声明一个长度为5的string数组
};
- 使用枚举类型声明长度
enum { ARRAY_LENGTH = 5 };
struct MyStruct {
string myStringArray[ARRAY_LENGTH]; // 声明一个长度为5的string数组
};
需要注意的是,结构体中的数组长度必须是常量表达式,因此以上三种方式都是将长度限定为常量。如果需要在运行时动态确定数组长度,可以使用动态内存分配,例如:
struct MyStruct {
string* myStringArray; // 声明一个指向string的指针
int arrayLength; // 声明数组长度
MyStruct(int length) {
arrayLength = length;
myStringArray = new string[length]; // 动态分配内存
}
~MyStruct() {
delete[] myStringArray; // 释放内存
}
};
在这个例子中,结构体中的数组长度是在构造函数中动态指定的,使用new运算符动态分配内存。在析构函数中使用delete[]运算符释放内存
原文地址: https://www.cveoy.top/t/topic/g9af 著作权归作者所有。请勿转载和采集!