注:私は経験豊富な C++ プログラマーなので、ポインターの基本は必要ありません。それは、私が一緒に仕事をしたことvoid**
がなく、自分のメンタルモデルをvoid*
vs. void**
セマンティクスをより簡単に覚えられるように、誰かがこれを良い方法で説明してくれることを願っています。
次のコードを検討してください: (たとえば VC++ 2005 でコンパイル)
int main() {
int obj = 42;
void* ptr_to_obj = &obj;
void* addr_of_ptr_to_obj = &ptr_to_obj;
void** ptr_to_ptr_to_obj = &ptr_to_obj;
void* another_addr = ptr_to_ptr_to_obj[0];
// another_addr+1; // not allowed : 'void*' unknown size
ptr_to_ptr_to_obj+1; // allowed
}