指向未知大小数组的指针的用例是什么?

vso*_*tco 6 c++ arrays pointers

我最近意识到C++允许指向未知大小的数组,例如

int (*p)[];
Run Code Online (Sandbox Code Playgroud)

上述声明等同于int* p;.实际上,尝试使用p指向固定大小的数组会导致编译时错误,例如

int data[42];
p = data; // error, cannot convert int [42] to int (*) []
Run Code Online (Sandbox Code Playgroud)

要么

int* data;
p = data; // error, cannot convert int * to int (*) []
Run Code Online (Sandbox Code Playgroud)

我的问题是我们何时以及为什么要使用这样的指针指向未知大小的数组?有没有令人信服的理由这样做,而不是简单地使用int*

编辑

这些对象不允许作为函数参数,请参见指向未指定大小的数组"(*p)[]"在C++中是非法的但在C中是合法的,但仍然可以在程序中声明.