質問です。 次のような時、関数内で配列数を取得する方法はありますでしょうか。

void func(const char* p) [
 // ここで配列のサイズを知りたい
 // しかしこのポインタが、実は関数の外で配列のアドレスがコピーされた物だ、
 // という事を知るすべが無いから、知りようが無いような気がしています。
 // 何か方法は無いでしょうか。
}

void main() {
 char abc[100];
 char *p = abc;

 func(p);
}