
c++指针问题 int a = 10; int *p = &a; delete p; return 0; 这个程序运行为什么都会有错
2个回答
展开全部
int a = 10;
int *p = &a;
//delete p; //p指向的a是个栈变量,是不能delete的
int* pi=new int(10);
p=pi;
delete p; //这样就可以
只有new出来的对象才可以delete
int *p = &a;
//delete p; //p指向的a是个栈变量,是不能delete的
int* pi=new int(10);
p=pi;
delete p; //这样就可以
只有new出来的对象才可以delete
更多追问追答
追问
那在这段程序中
int a = 10; int *p = &a;
我要删除p 有没有办法
追答
delete p的意思是把p指向的内存空间标记为自由的,并不是把p这个变量删除了
2012-04-23
展开全部
没有 new 为什么要 delete ?
int a = 10;
int *p = &a;
return 0;
试试。
int a = 10;
int *p = &a;
return 0;
试试。
追问
确实是这样的 多谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询