class A {
private:
int* count = NULL;
public:
A() {
count = NULL;
}
int getCount() {
return *count;
}
};
使用我的int
类型变量返回int*
类型存在一个简单的问题。当我编写A a();
并运行a.getCount();
时,出现了段错误。但是我不明白为什么。我误解了指针的概念吗??
答案 0 :(得分:1)
在取消引用之前,必须先指向某个东西。
答案 1 :(得分:1)
您肯定在return *count;
遇到分段错误。 为什么?。这是因为您正试图取消引用其值仍为*count;
(不指向任何内容)的指针变量(NULL
);
您应该重写
int getCount()
{
return *count;
}
为
int getCount()
{
if (count != NULL)
return *count;
return 0; // 0 or -1 other any other value depends on your code logic.
}
您还可以通过另一种方式将构造函数中的count
的值初始化为某个value
。
A()
{
*count = 0; // 0 or -1 other any other value depends on your code logic.
}