valgrind 错误大小 8 的无效读取

valgrind error Invalid read of size 8

所以我有 valgrind 抱怨这个函数中的这个错误:

int getMembersNum(Party party){
    assert(party != NULL);
    int i = 0;
    while (party->members[i] != NULL && i < party->maxMembersNum) <-- HERE
            i++;
    return i;

}

Party 是一个指向结构的指针,party->memberschar** 类型。使用 malloc 初始化时,所有 party->members 单元格都设置为 NULL

我错过了什么?

使用前需先测试

while (party->members[i] != NULL && i < party->maxMembersNum)

应该是

while (i < party->maxMembersNum && party->members[i] != NULL)