【发布时间】:2013-03-20 20:54:36
【问题描述】:
我正在为作业写一个回溯问题,所有代码都可以正常工作,除了最后我的delete[]。
/*Assg4.cc*/
int main()
{
//removed irrelevant code - see pastebin links if needed
void *data = &datavector;
bool finished = false;
bool* continuance = &finished;
int *a = new int[n+1];
for(int i=0; i<n; i++)
{
a[i] = NULL;
}
delete []a;
delete continuance;
return 0;
}
我收到以下错误:
*** 检测到 glibc *** ./Assg4: free(): invalid pointer: 0xbfc7098f ***
函数backtrack() 只是在某个时刻填充数组a[] 的内容,它不会以任何方式删除、扩展或缩小数组。我知道问题出在最后的删除上,因为当我将它们注释掉时,我没有收到任何错误(并且所有计算的结果都是正确的)。我做错了什么?
Pastebin 完整文件:
【问题讨论】:
-
我没有代表发布超过 2 个链接,这就是为什么 backtrack.cc 和 backtrack.h 在同一个粘贴中
-
删除你的新内容,删除[]你的新内容[]。你不是新的
finished。 -
你对指针的使用似乎是随意的。
-
@andre - 我必须实现 backtrack.h 的定义函数。指针的使用令人困惑