我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

«1 2 » Pages: ( 2/2 total )
本页主题: 求助::关于"c++ primer"第一个数组的例子 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

ollo



性别: 帅哥 状态: 该用户目前不在线
头衔: ~~非言叶党~~
等级: 人见人爱
家族: 考研俱乐部
发贴: 2676
威望: 0
浮云: 1130
在线等级:
注册时间: 2006-01-12
最后登陆: 2012-01-12

5come5帮你背单词 [ travel /'trævl/ vi. 旅行,行进,走,运行,运行,传达,室播;n. 旅行 ]


Quote:
引用第14楼perfect_刘于2006-11-19 18:13发表的:
其实就两点,
不用的delete掉,
还有不要两次delete同一块内存!
你要有你自己就是指针的感觉,内存中随你指!!
呵呵



恩说得有道理
那对于我的代码中是不是就是指
Quote:

void IntArray::inti(int size, int* array)
{
    _size = size;
    ia = new int[_size];
    for(int ix=0; ix<_size; ++ix)
      if(!array)
      ia[ix] = 0;
      else
      ia[ix] = array[ix];
       
}


这个函数中的问题呢,但是好像那个析构函数中是用了delete[]ia
了啊,别的还有什么地方有问题吗?
顶端 Posted: 2006-11-19 19:00 | [15 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ shovel /'Λvl/ n. 铲子,铁锨;v. 用铲子铲 ]


就是 你对ia重新分配一块内存,但是ia以前指向的内存你就没有管了!!
析构函数只是对象销毁时候调用的,此时也没有调用
应该先释放在从新分配
顶端 Posted: 2006-11-19 19:41 | [16 楼]
ollo



性别: 帅哥 状态: 该用户目前不在线
头衔: ~~非言叶党~~
等级: 人见人爱
家族: 考研俱乐部
发贴: 2676
威望: 0
浮云: 1130
在线等级:
注册时间: 2006-01-12
最后登陆: 2012-01-12

5come5帮你背单词 [ goat /gəut/ n. 山羊 ]


Quote:
引用第16楼perfect_刘于2006-11-19 19:41发表的:
就是 你对ia重新分配一块内存,但是ia以前指向的内存你就没有管了!!
析构函数只是对象销毁时候调用的,此时也没有调用
应该先释放在从新分配


恩刚才也想到了这个,那蝈蝈看下现在行不?
void IntArray::inti(int size, int* array)
{
  _size = size;
  if(ia)
  delete [] ia;
  else
  ia = new int[_size];       //这个 new 析构函数释放了的吧
  for(int ix=0; ix<_size; ++ix)
    if(!array)
    ia[ix] = 0;
    else
    ia[ix] = array[ix];
   
}


[ 此贴被ollo在2006-11-19 20:08重新编辑 ]
顶端 Posted: 2006-11-19 20:03 | [17 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ oneself /wΛn'self/ pron. (反身代词)自己,亲自 ]


你自己实验一下撒!!
不过还有个问题,构造函数中应该将ia初始为null 不然ia是个很危险的指针
你好生看下你的if和else运行流程
最好跟踪调式一步一步的看!~~
顶端 Posted: 2006-11-19 20:26 | [18 楼]
«1 2 » Pages: ( 2/2 total )
我来我网·5come5 Forum » 程序员之家

Total 0.010964(s) query 5, Time now is:11-23 21:16, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号