请大家探讨内存溢出的问题,95%的C++错误来源。

jj1002 2003-11-04 10:28:06
在用C++写程序时,总是会出现这样那样的内存错误码。
...全文
126 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cai114 2003-11-04
  • 打赏
  • 举报
回复
最好是多写点跟综
要不然哪一点错了也不明白

我吃这亏太多了
wjohn 2003-11-04
  • 打赏
  • 举报
回复
1.当你使用内存的动态分配时,譬如使用moalloc和new,
没有对指针进行初始化;
2.指针使用完后释放内存空间,如使用free或delete,
但释放指针后指针不会消亡,指针也不一定为NULL,
指针将指向垃圾内存空间,当程序中有如if(p==NULL)
的判断语句,那么就会造成严重错误。
如:
typedef struct Node
{
DataType data;
struct Node *next;
}Node;
......
Node *p;
p=(Node *)malloc(sizeof(Node));
p->next=NULL //初始化指针
......
free(p); //指针指向的内存空间背释放,但p任然存在,但不一定为NULL
p=NULL; //
......
3.避免指针的非法运用,如不能返回堆栈指针,...等

aflyinghorse 2003-11-04
  • 打赏
  • 举报
回复
用标准C++,尽量避免指针;
使用标准库容器,自动管理内存
北极猩猩 2003-11-04
  • 打赏
  • 举报
回复
一个目前看来最好的解决方法:
尽量不去自己分配和管理内存,把这些工作交给库去完成(比如STL)
fierygnu 2003-11-04
  • 打赏
  • 举报
回复
to rtdb(东临碣石):不只啊,还得想着你用过的东西还有用吗?该杀就杀。
hcj2002 2003-11-04
  • 打赏
  • 举报
回复
C++错误来源

1.异常处理不健全
2.指针应用不正确

个人意见
rtdb 2003-11-04
  • 打赏
  • 举报
回复
就一句话:
每写一条内存访误问语句时,问自己:
你现在要使用的内存是你的么?还有效么?会越界么?
fierygnu 2003-11-04
  • 打赏
  • 举报
回复
100%是程序员头脑不清楚产生的。
xiaoyunet 2003-11-04
  • 打赏
  • 举报
回复
恶心!
Wolf0403 2003-11-04
  • 打赏
  • 举报
回复
在害怕出现问题的地方,用类来包装,在析构函数中进行扫尾工作
liansdan 2003-11-04
  • 打赏
  • 举报
回复
同意
wanghuan1983 2003-11-04
  • 打赏
  • 举报
回复
指针有错误吗?
指针本身并没有错误,错误的是人!
rtdb 2003-11-04
  • 打赏
  • 举报
回复
fierygnu(va_list):
呵呵,谢了先。
我一向把内存越界和资源泄露当做两个故事,
希望没有误导初学者。
sharkhuang 2003-11-04
  • 打赏
  • 举报
回复
小心就是!
goodboyyxh 2003-11-04
  • 打赏
  • 举报
回复
吃了亏要找自己的原因!每种机制都有缺陷,而不是陷阱!

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧