C言語で、ポインタって分かり難いし扱いがやっかいなんで、出来るだけ使わないようにしたいよね。
今時のコンパイラの最適化に頼って添え字アクセスにするとかさ。
a[i];
で、ポインタのポインタの場合だけど。
例えば、ポインタを構造体のメンバーにすることで、シングルのポインタで扱えるように出来る。
前:
void func(int** p)
{
*p = malloc(10);
}
int main()
{
int* mem;
func(&mem);
}
後:
typedef struct
{
int *p;
} A;
void func(A* pVal)
{
pVal->p = malloc(10);
}
int main()
{
A mem;
func(&mem);
}
んー。むしろややこしい?
C++経験者向けには、func()がAクラスのメンバー関数と言った方がいいかな?
funcの第1引数にthisを渡していると理解してもらえれば。