有关函数、结构体和指针的编程问题

初学C++,在编程时定义了一个结构体,保存了五个人的数据,然后对年龄排序。代码运行时出现这个情况如何解决

img


代码如下:


```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来计算长度