我在我的程序中使用realloc函数但它无法正常工作。
实际上,在realloc的最后一次调用期间,调用realloc工作2次中有3次得到以下消息:" *`./sat':realloc()出错:无效下一个尺寸:0x0000000000647520 * 中止(核心倾销)"
这是我的代码中包含对realloc的调用的部分:
void insertInAssignedLitArray(int indiceVar, int indiceClause, int nbDeletedLiterrals, lit_t** delLit, clause_t* ptr, int signe, int nbClauseNonSat)
{
*delLit = (lit_t*)realloc(*delLit, nbDeletedLiterrals+1);
if (*delLit == NULL)
{
fprintf(stderr, "Erreur reallocation lors de la suppression du litteral\n");
exit(EXIT_FAILURE);
}
//some tasks.
}
我已经使用了一些printfs,nbDeletedLitterals的值也没问题。
此函数在另一个函数中调用,但我不在其他任何地方使用delLit。
提前致谢。
答案 0 :(得分:0)
lit_t
分配了多少realloc(*delLit, 1)
个? (答案:归零。它分配一个字节)。如果这是您的代码中唯一的问题,那么应该很容易修复。
- immibis