遇到无效写入问题

Having issues with Invalid Writes

本文关键字:问题 无效 遇到      更新时间:2023-10-16

我真的需要有人告诉我为什么这是不正确的。 我不精通指针的方式来理解我所犯的错误。

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;
    }
}

出于某种原因,我在这里说我在瓦尔格林德上遇到了无效的写入错误。 每当我写信给这些时,我似乎都会得到它们。 有一次,程序甚至向我抛出一个malloc错误,说我试图删除尚未分配的内容。

values_[n] = NULL;

在这一行上,您正在写入一个超过您分配的数组末尾的内容。也许你打算使用values_[i]