我在代码中使用了数组,现在我将它们更改为 vector
我收到这些错误(在 Linux 中):
glibc detected *** double free or corruption
glibc detected malloc memory corruption
我的代码太长了,无法粘贴到这里,这是我的使用方式vector
:
声明:
vector:vector<double>x;//i didnt define anysize for vector
用于在其中插入值:
x.insert(x.begin()+i,i)
使用元素:
x.at(i)
就这个。
您对这个问题有何看法? <罢工>?罢工>
另外我不知道什么时候应该在 vector 中使用迭代器,我不应该在这里使用它吗? <罢工>?罢工>
TIA
最佳答案
这只是一个疯狂的猜测(没有看到代码),但是您是否只是从中替换了您的数组:
// some code
double *array = new double[ 50 ];
// use array somehow
delete[] array;
进入此:
// some code
std::vector< double > array;
// use array somehow
delete [] &array[0];
?
最好的选择是使用 valgrind 运行程序,它应该准确地告诉您问题出在哪一行。
关于c++ - 错误: glibc detected when using vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896239/