As you may know, VLA's haves pros and cons and they are optional in C11.
I suppose that the main reason to make VLA's optional is: "the stack can blow up":
int arr[n]; /* where n = 1024 * 1024 * 1024 */
but what about pointer to VLA's?
int m, n;
scanf("%d %d", &m, &n);
int (*ptr)[n] = malloc(sizeof(int [m][n]));
In this case, there is no risk to blow up the stack, and IMO they are extremely useful.
My question is:
Could the committee have preserved pointers to VLA's, making the VLA's to non-pointer types optional?
Or one thing implies the other?
(Excuse my poor english)