【发布时间】:2020-04-30 21:34:16
【问题描述】:
我在处理类中的指针时遇到问题。
#include <iostream>
using namespace std;
class myClass {
public:
void modifyPointer(float *pointer);
};
void myClass::modifyPointer(float *pointer) {
pointer = new float[3];
pointer[0] = 0;
pointer[1] = 1;
pointer[2] = 2;
cout << "Address: " << pointer << endl;
}
int main()
{
float* pointer;
myClass object;
object.modifyPointer(pointer);
cout << "Address: " << pointer << endl;
cout << "Values: " << pointer[0] << "," << pointer[1] << "," << pointer[2]
<< std::endl;
return 0;
}
当我在类中打印指针时,我得到了它的地址,但在主程序中,我在打印值时得到了一个 0 地址和一个段错误。我怎么修改这个指针有什么问题?
【问题讨论】:
-
这看起来很奇怪,有时需要一段时间才能理解它,但是当指针通过引用有效地传递另一个对象时,指针本身是通过值传递的。
-
是的,我不认为指针是一个对象。现在这完全有道理。
标签: c++ pointers segmentation-fault