CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

难道真的没有办法了!!!!!!!!!!!!?

楼主unionsoft(gm)2002-02-02 13:26:40 在 VC/MFC / 基础类 提问

关于内存的一个问题,语句如下:  
   
  char   *str=(char   *)malloc(100);  
  strcpy(str,"hello   csdn");  
  str++;  
  free(str);  
   
  运行后,系统提示执行了非法操作,为什么?  
  如果要释放此内存,那该怎么办? 问题点数:24、回复次数:8Top

1 楼taosan(飞狐)回复于 2002-02-02 13:32:51 得分 0

换种方法试试,用new,delete行不行?Top

2 楼inter_national(inter_national)回复于 2002-02-02 13:34:33 得分 0

用new   和delete    
  不要用   malloc   和   free  
  Top

3 楼JebelMar(萨克斯风)回复于 2002-02-02 13:34:33 得分 0

用CString类生成一个动态的字符串对象吧!  
  CString   str;  
  str.Format("hello   csdn");  
  Top

4 楼redmoon528()回复于 2002-02-02 13:37:39 得分 0

new   是对对象操作的。Top

5 楼solar(天哪,忘了我是什么时候注册的了!)(int argc, char *argv[])回复于 2002-02-02 13:50:44 得分 1

先看一下malloc是否成功了。  
  另外你要仔细检查一下其它地方的代码,有可能是你在别处进行了内存非法操作,一直潜伏到这几句才暴露出来;单就这几句而论,是没问题的!我遇到过这样的问题,当时还以为c的库函数有bug,化了整整一天的时间终于找到了原因:确实在别处有非法操作!Top

6 楼unionsoft(gm)回复于 2002-02-02 14:02:52 得分 0

答solar:就是这几句的问题,不信,你可以新建一个项目。关键是str++;这句有问题Top

7 楼Chice_wxg(学)(习)回复于 2002-02-02 14:11:13 得分 15

char   *str=(char   *)malloc(100);  
  strcpy(str,"hello   csdn");  
   
  char   *p;  
  p=str;  
  p++;  
   
  free(str);  
   
  这样就没问题了Top

8 楼jeffchen(Jeff)回复于 2002-02-02 14:15:43 得分 8

同意unionsoft(gm)。  
  malloc在分配内存时,在你所得到的内存前还为free函数所需信息分配了空间。str++把指针移到后面去了,在释放时free函数找到的信息就是错的。当然出错了。Top

相关问题

  • 难道真的没有办法么?
  • 自由控制IE的外观:难道真的没有办法做到么???
  • 难道真的没有好办法用delphi取得本机硬盘序列号码(Win2000)? 在线..........
  • 难道在Oracle中真的没有办法在独立执行block中返回一个值
  • 我真的没有办法了吗?
  • 难道没有办法了吗?我再加分!循环添加控件!
  • 难道真的没有--人
  • 有没有办法?!!!
  • 看似简单,却没有办法,难道没有人遇到这样的问题吗?(共三百分)
  • 有没有办法用Moderm和传真机进行通讯

关键词

  • 内存
  • 函数
  • csdn
  • malloc
  • 非法操作
  • 问题
  • str
  • free
  • hello csdn
  • char

得分解答快速导航

  • 帖主:unionsoft
  • solar
  • Chice_wxg
  • jeffchen

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo