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->members
是 char**
类型。使用 malloc
初始化时,所有 party->members
单元格都设置为 NULL
。
我错过了什么?
使用前需先测试
while (party->members[i] != NULL && i < party->maxMembersNum)
应该是
while (i < party->maxMembersNum && party->members[i] != NULL)
所以我有 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)