警告 C6386 写入到“newSpace”时缓冲区溢出: 可写大小为“newSize*4”个字节,但可能写入了“8”个字节,代码如下,该如何解决?


void workerManager::addEmp()
{
    cout << "请输入你要添加的新职工数量" << endl;
    int addNum = 0;
    cin >> addNum;
    if (addNum > 0)
    {
        int newSize = this->m_empNum + addNum;
        worker** newSpace = new worker * [newSize];
        if (this->m_empArray != NULL)
        {
            for (int i = 0;i < this->m_empNum;i++)
            {
                newSpace[i] = this->m_empArray[i];
            }    
        }
        for (int i = 0;i < addNum;i++)
        {
            int id;
            string name;
            int deptId;
            cout << "请输入第" << i + 1 << "个新职工编号" << endl;
            cin >> id;
            cout << "请输入第" << i + 1 << "个新职工姓名" << endl;
            cin >> name;
            cout << "请选择第" << i + 1 << "个新职工岗位" << endl;
            cout << "1.老板" << endl << "2.经理" << endl << "3.员工" << endl;
            cin >> deptId;
            worker* worker = NULL;
            switch (deptId)
            {
            case 1:
                worker = new boss(id, name, 1);
                break;
            case 2:
                worker = new manager(id, name, 2);
                break;
            case 3:
                worker = new employee(id, name, 3);
                break;
            default:
                break;
            }
            cout << sizeof(&worker) << endl;
            newSpace[this->m_empNum + i] = worker;        //警告行
        }
        delete[]this->m_empArray;
        this->m_empArray = newSpace;
        this->m_empNum = newSize;
        cout << "成功添加" << addNum << "位新职工!" << endl;
        this->save();
    }
    else
    {
        cout << "输入有误,将返回菜单" << endl;
    }
    system("pause");
    system("cls");
}

警告行加注释了,警告行上面那行自己胡乱加的