| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 591 人关注过本帖
标题:几种空间出错应该如何解释?
只看楼主 加入收藏
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
 问题点数:0 回复次数:3 
几种空间出错应该如何解释?
char *str1;
char* str2=new char[5];
strcpy(str2,"ugly");
strcpy(str1,str2); //1、错:str1没有空间可储
strcpy(str2,"Hello");//2、错:str2空间不够
str2="Hello"; //3、原来的"ugly"空间脱钩,导致内存泄漏
第1种编译时就出错,这个可以理解。

第2、3种编译不出错,并且运行也正常,再加3个字符也不出错。不知道它是如何出错的,有谁知道的还请解释一下?
搜索更多相关主题的帖子: 解释 空间 
2006-11-17 13:14
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 

可以编译运行,但是会造成内存泄漏
表面是看不出的,尝试释放str2的内存时就报错了


2006-11-17 16:54
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

当碰到你越界的地址有东西用了
就错了


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-17 17:07
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
得分:0 

原来是这样,谢谢两位的解释。
表面上看不出来,但是在内存里就能反映情况了。

理解:各占各的“地盘”,当它想超出自己的“地盘”时,其它的“地盘”又被别的占用着,问题就出现了。上面的只不过程序太小,问题才没出现。


多看、多练、多写
2006-11-17 19:49
快速回复:几种空间出错应该如何解释?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011031 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved