请教c++中的一个问题,关于类的成员指针

#include<iostream.h>classa{public:a(inti){*x=i;}voidprint(){cout<<x<<endl;}private:in... #include <iostream.h>
class a
{
public:
a(int i)
{
*x=i;
}
void print()
{
cout << x << endl;
}
private:
int *x;
};
void main()
{
a a1(1);
a1.print();
}
为什么程序运行起来会崩溃呢?难道是因为我没有给指针分配一个地址么?可是如果没有分配地址的话系统应该会自动给指针分配一个栈空间中的地址啊,不明白,请高人指示。
展开
 我来答
百度网友9351652
2011-10-07 · TA获得超过428个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:202万
展开全部
首先x是一个指向int地址的变量,本身值是一个地址,x没有被初始化,一开始的值是不确定的,所以*x会访问到其他内存导致崩溃,应该在这之前加上x=new int;
tracelesschen
2011-10-07 · TA获得超过313个赞
知道答主
回答量:46
采纳率:0%
帮助的人:32.2万
展开全部
你输出的是指针,你指针都没有分配空间
#include <iostream.h>
class a
{
public:
a(int i)
{
x = new int;
*x=i;
}
void print()
{
cout << x << endl;
}
~a(){
delete x;
}
private:
int *x;
};
void main()
{
a a1(1);
a1.print();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bingye_chen
2011-10-07
知道答主
回答量:3
采纳率:0%
帮助的人:4866
展开全部
指针没有分配地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式