以下は、私が直面している問題の小規模な例です。以下の例では 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;
}