所以我让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/