ポインタ演算に領域サイズなんて一切無関係。
malloc, freeの時しか領域サイズに関する情報は扱わない。

double a[5];
を
void aho(double *b);
に
aho(a+3)
とかで渡してahoが領域情報とかわかるわけないのに勝手にポインタ演算の結果に確保された領域が反映されるわけないだろ。