C++:缓冲区溢出怎么解决
本帖最后由 缘丿谁懂我一生 于 2020-4-9 21:09 编辑警告 C6386 写入到“newSpace”时缓冲区溢出: 可写大小为“newSize*4”个字节,但可能写入了“8”个字节。
Worker** newSpace = new Worker * ;
Worker* worker = NULL;
newSpace = worker;
}
类声明:
class WorkerManger
{
public:
//职工人数
int m_Number = 0;
//职工数组指针
Worker** m_EmpArray= NULL;
private:
};
//职工抽象类
class Worker
{
public:
//显示个人信息
virtual void showInfo() = 0;
//获取岗位名称
virtual string getDeptName() = 0;
//职工编号
int m_Id=0;
//职工姓名
string m_Name;
//部门编号
int m_DeptId=0;
}; 只有这一点代码,你要别人去猜剩下的那一部分代码吗?
把代码贴完整 人造人 发表于 2020-4-9 20:15
只有这一点代码,你要别人去猜剩下的那一部分代码吗?
把代码贴完整
这不只是局部错误吗
这是目前的全部了 缘丿谁懂我一生 发表于 2020-4-9 20:25
这不只是局部错误吗
错误确实是局部的,但是定位错误需要从全局着手
举个例子
Worker** newSpace = new Worker * ;
看到这一行,我需要知道 Worker 的类型,你给出的这个代码中我找不到 Worker 的定义,不知道 Worker 的类型
本帖最后由 人造人 于 2020-4-9 21:49 编辑
没有找到你说的问题,但是找到了一堆其他问题(内存泄漏问题)
没有帮你找全,剩下的你自己找
犯了一个低级错误,抱歉
另外,没有找到你说的那个问题
一个new对应一个delete,记住了吗?
代码成对编写,好吗?
人造人 发表于 2020-4-9 21:46
一个new对应一个delete,记住了吗?
代码成对编写,好吗?
我的vs2019有这个警告 缘丿谁懂我一生 发表于 2020-4-9 22:09
你能想办法让这个 “可能” 成真吗?
我想看看写入8个字节的情况
我怎么看代码都想不到如何写入这8个字节
我不知道导致这个问题的原因,也就没办法解决这个问题
除非你让这个问题出现,不能重现的问题很难解决
而这个问题干脆就没有发生过,我没办法
还有,你还是喜欢发局部的代码,这次是局部的图片
知道吗,看这个图片的时候,我还是不得不打开之前下载你的代码,因为图片上面的代码不全,我没办法判断问题 请问这个问题解决了吗,我也遇到了同样的问题 人造人 发表于 2020-4-9 22:57
你能想办法让这个 “可能” 成真吗?
我想看看写入8个字节的情况
我怎么看代码都想不到如何写入这8个字 ...
名字比如张三有四个字节,那加上两个编号必然超过四个字节
页:
[1]