*p = 5; cout<<*p<<endl;程序出错
#include "Stdio.h"
#include <iostream.h>
int main(void)
{
int *p=0;
*p = 5;
cout<<*p<<endl;
int a =0;
cin>>a;
return 0;
}
在VC++ 6.0 中出现内存错误,这是为什么?
[解决办法]
p只是个int指针,你没有给它指向一个int型内存,*p是要读它指向的对象
[解决办法]
#include "Stdio.h"#include <iostream.h>int main(void){ int t=0; int *p=&t; *p = 5; cout<<*p<<endl; int a =0; cin>>a; return 0;}
[解决办法]
楼上说的对,p只是个指针,如果没有指向某个具体的内存会出错的
[解决办法]
*p = 5; //给指针p所指向的内存区域赋值,但p指针为空,没有指向任何内存区域~
[解决办法]
int *p = 0;该指针指向的地址是系统受保护的,作为用户是没有权限进行修改的。所以,一般会出现段错误。你可以通过malloc申请堆上的空间,然后赋值。
[解决办法]
或者int *p;
int t;
p=&t
这二者作用相同,p指向一个地址
[解决办法]
p指向为空,那把5赋到哪里去
[解决办法]
int*p = ﹠5:
[解决办法]