以下是我面临的问题的一个小规模示例。在下面的示例中,我使用 int 指针,但在我自己的代码中,我实际上使用的是指向另一个类(节点类)的指针。
问题似乎是我正在使用按值指针调用(如果有这样的事情)。我不知道,我认为指针是通过引用。
我确实需要能够将多个指针传递给该方法,并且我真的不想为每个指针编写一个特定的方法。
当然,当我运行代码时,我会遇到某种错误,因为它试图访问尚未分配的指针。我不明白为什么如果我传递我想要的特定指针它不会初始化正确的指针。
任何帮助将不胜感激。
#include <iostream>
using namespace std;
class Test {
private:
int *p1;
int *p2;
int sizeP1;
int sizeP2;
public:
int* getIntPointer() {return p1;}
void initializeP1(int *ip,int n){
sizeP1=n;
ip=new int[n];
for(int i=0;i<n;i++)
p1[i]=i;
}
void printP1() {
for(int i=0;i<sizeP1;i++)
cout<<p1[i]<<" ";
}
};
int main() {
Test t;
t.initializeP1(t.getIntPointer(),10);
t.printP1(); //this fails.. but why? How can I fix it?
return 0;
}