我试图在我自己的类 vector 中放置一个指针值,但收到内存错误。有谁能帮帮我吗?
class myVector
{
int * vector;
int size;
public:
myVector()
{
size = 0;
vector = nullptr;
}
void pushBack(int data)
{
if (size == 0)
{
*vector = data;
size++;
}
else
{
int * tmp = new int[size + 1];
for (int i = 0; i <= size; i++)
tmp[i] = vector[i];
tmp[size + 1] = data;
vector = tmp;
delete[] tmp;
}
}
最佳答案
我认为代码中有很多问题。但我只会解决您提出的问题。正如其他人指出的那样,您已经创建了一个指针 vector
并将其初始化为 nullptr
。然后您尝试将数据存储在 nullptr
中。这应该可以解决您面临的内存问题。
MyVector {
...
MyVector() : size(0), vector(new int[1]){ }
...
}
关于c++ - 指针内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36925239/