CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

小弟一事不明,请教了!

楼主rainday(雨后的蘑菇)2001-06-04 11:39:00 在 C/C++ / C语言 提问

//小弟一事不明,请教了!  
  //小弟写了一个linked   list   程序  
  //...  
  int   main()  
  {  
  Node<int>   *head=NULL,*p,*temp;  
  int   i=20;  
  while   (i>0)  
  {  
  p   =   new   Node<int>   (i--,head);  
  head=p;  
  }  
  p=head;  
   
  while(p!=NULL)  
  {  
  cout<<p->data<<"   ";  
  p=p->NextNode();  
  }  
  p=head;  
   
   
   
  //include   的"node.h"是关于链表节点类的头文件  
  //请问,在程序中加入  
  while   (p!=NULL)  
  {  
  temp=p;  
  p=p->NextNode();  
  delete   temp;  
   
  }  
  //后,怎样才能知道方才分配给Node实例的   new   空间  
  //被释放了?  
  //小地尚属初学,在vc中F11实在无法忍受"mov","push"...只好在此提问  
  //还有,delete   temp之后  
  //temp   是指向0x........(不存在)吗?  
  //thanx   so   much... 问题点数:20、回复次数:6Top

1 楼millet(小米)回复于 2001-06-04 11:52:00 得分 15

delete   temp之后  
  temp   还是指向0x........。但是该内存区域已经被释放了。所以再使用这个指针时会导致访问一个未知的内存区域从而导致异常错误。  
  Top

2 楼millet(小米)回复于 2001-06-04 11:55:00 得分 0

你不需要用F11跟踪到delete语句中间去。  
  在监视窗口你会发现,当delete   temp;之前,可以看到temp所指向的Node内容,在删除后就看不到了。Top

3 楼rainday(雨后的蘑菇)回复于 2001-06-04 12:54:00 得分 0

Thanx  
  小米兄初到便行侠仗义一把  
  替兄扬名...  
  data   后来都变成了-572662307(十进制)   -22222223(十六进制)  
   
  还有一半未初始化的指针都指向0xCCCCCCCC  
  Q:(1)这些数为什么这么整齐  
      (2)Win2k下经常跳出"@#$指令调用0xcccccccc(or   other...)内存,该内存不能为"read"(or   "write")..."   这是您说的"异常错误"吗?  
  喜钱我玩"quake"  
     
   
  Top

4 楼rainday(雨后的蘑菇)回复于 2001-06-04 13:03:00 得分 0

Thanx  
  小米兄初到便行侠仗义一把  
  替兄扬名...  
  data   后来都变成了-572662307(十进制)   -22222223(十六进制)  
   
  还有一半未初始化的指针都指向0xCCCCCCCC  
  Q:(1)这些数为什么这么整齐  
      (2)Win2k下经常跳出"@#$指令调用0xcccccccc(or   other...)内存,该内存不能为"read"(or   "write")..."   这是您说的"异常错误"吗?  
          以前我装"quake"每开始游戏必出此提示  
          后从装系统再装quake则ok  
          方便的话,请解释一下问题成因...Top

5 楼millet(小米)回复于 2001-06-04 19:08:00 得分 5

(1)这些数为什么这么整齐  
  估计这就要看操作系统或者是编译器是怎么做的了。更加详细的原因我也不太清楚。反正释放了后就不能用了。  
   
  (2)Win2k下经常跳出"@#$指令调用0xcccccccc(or   other...)内存,该内存不能为"read"(or   "write")..."   这是您说的"异常错误"吗?  
  这个可能是因为异常的内存访问造成的。你重装系统之前,可能那些程序的某些文件已经有些损坏。常会导致此类问题。  
  你如果在你的程序中使用以下语句,就多半会出现这个错误了。  
  char     *   p;   //指针不知道指到什么地方了。  
  *p   =   'a';   //此出会出现异常错误。  
   
  Top

6 楼rainday(雨后的蘑菇)回复于 2001-06-04 21:36:00 得分 0

thanx    
  bro.Top

相关问题

  • 一事不明
  • 有一事不明!
  • 有一事不明!
  • 小弟,有一事不明...
  • 一事不明白(1)
  • 各位高手,有一件事不明
  • 【东大进来】有一小事不明
  • 各位大虾,小弟有一事不明,请大虾赐教!
  • c语言中我有一事不明白。
  • 小弟刚来, 有一事不明,请教各位

关键词

  • win2k
  • 内存
  • 指针
  • 指令
  • null
  • 小弟
  • thanx
  • 错误
  • 指向
  • xcccccccc

得分解答快速导航

  • 帖主:rainday
  • millet
  • millet

相关链接

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

广告也精彩

反馈

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