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

为什么会有这种不能内存读 的错误呀,我已遇到好几次了,好多次是感到莫名其妙的,请高手指教

楼主crcr(游侠)2003-08-01 20:19:58 在 C/C++ / C语言 提问

 
         
        #include<iostream.h>  
  void   fn(int   **p,int,int);  
  void   main()  
  {  
  int   p=1;int   j;  
  static   int   a[2][3];  
  for(int   i=0;i<2;i++)  
  for(   j=0;j<3;j++)  
  a[i][j]=p++;  
  fn((int   **)&a[0][0],i,j);  
  }  
  void   fn(int   **p,int   ii,int   jj)  
  {  
  for(int   i=0;i<ii;i++)  
  for(int   j=0;j<jj;j++)  
  cout<<"     "<<p[i][j];  
  cout<<endl;  
  }  
  为什么,我认为没有错误呀,已   通过编译和链接了呀,  
   
  问题点数:0、回复次数:3Top

1 楼loyyer(我爱C++)回复于 2003-08-01 20:37:55 得分 0

为什么你不给分呢?  
  这明摆着是打击大家的积极性啊!~!@#$Top

2 楼hustwf(大飞)回复于 2003-08-01 21:54:06 得分 0

告诉你好了。  
  int   a[m][n]并不表示a是一个二级指针,用二级指针是不行的。Top

3 楼direstrait(明天不是猪)回复于 2003-08-02 02:28:47 得分 0

大飞说的很有道理.  
  可以看看下面这个例子:  
  int   *p1=6;  
  int   **p2=p1;  
  说明了2及指针并不能用来代替2维数组,大家平时有一种这样的概念是因为  
  char   *p1="hello";  
  char   **p2=p1;  
  是因为字符数组和字符串在某种程度上有些相似之处,但是其实是不一样的,所以更加不能套用到int里面来.  
  真可惜,居然没有分,哎,可怜我初来乍到.Top

相关问题

  • 莫名其妙(遇到好几次了)
  • 哎!又是访问内存错误!大家平时遇到这种问题一般怎么处理的?
  • win2000内存只读错误?
  • 内存错误问题
  • 内存分配错误
  • help 内存错误.dll
  • c++ 内存分配错误 求解
  • 这个内存错误怪怪的!!!!!
  • 临界内存分配错误求解
  • 读内存错误:怎么解决呢?

关键词

得分解答快速导航

  • 帖主:crcr

相关链接

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

广告也精彩

反馈

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