int (*ptr)[100];
means ptr- this is a pointer that should contain the address of an array of 100 integers. In other words, technically, if you have, something like:
int arr[100];
Then you can use:
ptr = &arr;
But this is not so. That way you can make a simple pointer. If you want to switch to dynamic, you either switch to the equivalent malloc:
int *p = new int[100];
, p - , .
, :
std::vector<int> v(100);
100 , :
int a[100];
std::array<int, 100> arr;
new , , unique_ptr :
std::unique_ptr<int[]> p(new int[100]);