初学C++,在编程时定义了一个结构体,保存了五个人的数据,然后对年龄排序。代码运行时出现这个情况如何解决
```c++
#include
using namespace std;
struct people {
string name;
int age;
string sex;
};
void sort(people* arr, int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; i < len - i - 1; j++) {
if (arr[j].age > arr[j + 1].age) {
people temp = arr[j];
arr[j] = arr[j + 1];
arr[j+1]=temp;
}
}
}
}
void print(people* arr, int len) {
for (int i = 0; i < len; i++) {
cout << arr[i].name << arr[i].age << arr[i].sex << endl;
}
}
int main() {
people parr[5] = {
{"张三",23,"男"},
{"李四",21,"男"},
{"王五",22,"女"},
{"赵六",20,"女"},
{"孙七",24,"男"},
};
int len = sizeof(parr) / sizeof(parr[0]);
sort(parr, len);
print(parr, len);
system("pause");
}
```
int len = sizeof(parr) / sizeof(parr[0]);
这是不行的,string是个不定长类型,不能用sizeof来计算长度