我对 valgrind 和 C 都很陌生,并且无法准确解释我的代码有什么问题。我在第 285 行得到一个无效的读取大小 1,它说在分配 5 个块后地址为 0 个字节。我的分配如下:
output = malloc(sizeof(char**));
output[0] = malloc(sizeof(char*)*size);
for(i = 0; i < size; i++){
output[0][i] = malloc(wordLength);
}
无效的读取大小和周围的行是:
for(j = 0; j < size; j++){
printf("%s, ", output[0][j]);
free(output[0][j]);
}
我不会在代码中的其他任何地方释放这些数据,所以我不确定出了什么问题。此外,输出中实际上不止一个二维数组,但我认为没有必要深入探讨,因为这个错误似乎与这种特定情况有关。