いくつかの値を指す float 型の P というポインターがあるとします。Ptr と呼ばれる別のポインターを作成して、P が指している場所を通過し、最後の要素を返したいと考えています。どうやってやるの?
これは私が今まで試したことです...
float *p;
float *ptr;
for(int i=0; i< sizeof p; i++){
ptr++;
return &ptr;
}
あれは正しいですか?私の質問は基本的なもので申し訳ありません。
いくつかの値を指す float 型の P というポインターがあるとします。Ptr と呼ばれる別のポインターを作成して、P が指している場所を通過し、最後の要素を返したいと考えています。どうやってやるの?
これは私が今まで試したことです...
float *p;
float *ptr;
for(int i=0; i< sizeof p; i++){
ptr++;
return &ptr;
}
あれは正しいですか?私の質問は基本的なもので申し訳ありません。
pointer-to-pointer-to-float
は次のように宣言および初期化されます。
float** ptr = &p;
多分あなたがやろうとしていることはこれです:
size_t sizeArr = N;
float *p = new float[sizeArr];
float **ptr = &p;
for(int i=0; i< sizeArr-1; i++){
(*ptr)++;
}
return (**ptr)
...
delete[] p; //careful with this one, since there is another pointer to the same memory
ここで、sizeArr は p が指している配列の長さです
アップデート
本当に必要でない限り、C++ で malloc を使用しないでください (コメントで提案されているように)。