我真的需要有人告诉我为什么这是不正确的。我并不精通指针来理解我所犯的错误。
template <class T> UndoArray<T>::UndoArray(uint n)
{
this->size_ = n;
this->counts_ = new uint[n]; // this tells how many objs are in || values array
values_ = new T*[n];
//declare arrays in each spot of values_
for(uint i=0; i<size_; ++i) //HERE<=========
{
values_[n] = NULL;
}
}
出于某种原因我在这里说过我在Valgrind上遇到了无效的写错误。每当我写这些东西时,我似乎都会得到它们。有一次,程序甚至抛出了一个malloc错误,说我试图删除一些尚未分配的东西。
答案 0 :(得分:1)
values_[n] = NULL;
在这一行上你写了一个超过你分配的数组的结尾。也许您打算使用values_[i]
?