有请高手帮我看下那里出错了??

aogooo 2007-04-08 03:34:59
int *p= NULL;
int **test= NULL;
*test =p;
cout<<*test<<endl;
...全文
211 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aogooo 2007-04-09
  • 打赏
  • 举报
回复
多谢各位的指教.....
aogooo 2007-04-08
  • 打赏
  • 举报
回复
我想问下你这两个指针所指向的类型是什么?
int *p= NULL; //指针所指向的类型是int
int **test= NULL;//指针所指向的类型是int *
还有它们的类型是什么???
al0n9 2007-04-08
  • 打赏
  • 举报
回复
int *p= NULL; //指针所指向的类型是int
int **test= NULL;//指针所指向的类型是int *
*test =p; //因为两个指针类型不一样,所以error。。。

-------------------------------------
*test 与 p的类型是一致的。至于不对的原因,前面已经有人替你分析了。是因为对一个空指针解引用造成非法访问。
aogooo 2007-04-08
  • 打赏
  • 举报
回复
int *p= NULL; //指针所指向的类型是int
int **test= NULL;//指针所指向的类型是int *
*test =p; //因为两个指针类型不一样,所以error。。。
chensanniang 2007-04-08
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <stdio.h>
int main()
{
int *p= NULL;//定义指针P
int **test= NULL;//定义指针test,并且赋值NULL,此处赋值可以任意,只要合法就可以.
*test =p;//此处为作赋值,对二级指针的一级指针赋值空,这是执行时内存出错的原因
cout<<*test<<endl;
return 0;
}
以上程序在编译的时候,并没有出错.-Configuration: a - Win32 Debug--------------------
Linking...

a.exe - 0 error(s), 0 warning(s)
执行的时候可能会出问题.
book_lxcypp 2007-04-08
  • 打赏
  • 举报
回复
不要被 太多的**所迷惑
test是一个指针,指向(int*)类型

int **test= NULL; // 这里 test=NULL,其实没有给test指针分配空间
*test =p; // 这里访问的实际上是 NULL 指针指向的内容,所以会出错
cout<<*test<<endl; // 执行不到这里

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧