c++ - 指针内存错误

标签 c++ pointers vector out-of-memory nullptr

我试图在我自己的类 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/

相关文章:

c++ - 有使用英特尔线程构建模块的经验吗?

c++ - io_getevents 在短于超时的时间内返回的作业数量少于请求的数量

c - 动态分配内存中指针的访问值

c - 传递给函数时指针值意外更改

r - 获取一定长度的连续整数的运行并从第一个值中采样

c++ - 如何实现二维 vector 数组?

使用接口(interface)的 C++ 命令行操作抽象

c++ - functors_sort :vector

c - 在函数中使用指针访问二维数组

c++ - 尝试在 vector 类中创建复制函数