CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一个小问题

楼主iawk(王卡)2003-10-03 12:28:51 在 C/C++ / C语言 提问

typedef   struct   CStashTag   {  
      int   size;             //   Size   of   each   space  
      int   quantity;     //   Number   of   storage   spaces  
      int   next;             //   Next   empty   space  
      //   Dynamically   allocated   array   of   bytes:  
      unsigned   char*   storage;为什么说这是动态分配的呢?  
  }   CStash;  
  而且在后面的函数中,还有语句  
  CStash*   s;  
  delete   [](s->storage);    
  真搞不懂,不是只能释放用new语句建立的动态变量吗? 问题点数:50、回复次数:5Top

1 楼lemon520(喷血)回复于 2003-10-03 13:26:26 得分 20

CStash*   s;     //s不用初始化或是赋值吗?那delete   [](s->storage);   肯定错了!  
  一般的用法是   CStash*   s   =   new   CStashTop

2 楼iawk(王卡)回复于 2003-10-03 13:45:44 得分 0

是这样的,在主函数中定义CStash   intCStash;然后执行f(&intStash)  
  调用函数f(CStash*   s)  
  在该函数中有delete[](s->storage)这样的语句.  
   
  还有就是:为什么不能CStash*   s呢?就好象int*   p一样?Top

3 楼javaman8(javaman)回复于 2003-10-03 14:08:25 得分 10

不对滴,少了s=new   CStash及storage=new   unsigned   char[..]嘛  
  没的话,内存里不知道哪块被DELETE[],程序会崩掉的Top

4 楼minghui000(沉迷网络游戏)回复于 2003-10-03 14:14:12 得分 10

upTop

5 楼junmayang(笨猪)回复于 2003-10-03 15:11:19 得分 10

对,CStash*   s和storage没有初始化,搞不好程序会崩掉Top

相关问题

  • 小小小小小问题!
  • 一个小小小小小小问题
  • 小小,小问题
  • 小小小小问题
  • 小小问题!
  • 小小问题?
  • 小小问题。
  • 小小问题!!!!
  • 小小API
  • 小小问题:)

关键词

  • 函数
  • storage
  • 语句
  • cstash
  • space
  • delete

得分解答快速导航

  • 帖主:iawk
  • lemon520
  • javaman8
  • minghui000
  • junmayang

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

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