所以我让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->members属于char**类型。用malloc初始化时,所有party->members单元格都设置为NULL
我错过了什么?

最佳答案

在使用前你需要测试一下。

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

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

关于c - valgrind错误大小为8的无效读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29905046/

10-11 04:43