direi che
int A[N-1];
non va bene deve essere di N elementi, dichiaralo statico: viste le assunzioni può andar bene
anche int A[1000] non sarà un grosso spreco di memoria. Se proprio vuoi risparmiare dichiaralo di tipo char.
Oltretutto il modo per dichiarare un vettore dinamico non dovrebbe essere quello (almeno il mio compilatore da errore). (int *A; …)
In C++ fare int A[N]; è valido e alloca l’array sullo stack. In generale lo stack è abbastanza piccolo, quindi per allocazioni medio-grandi è sempre meglio usare l’heap chiamando new o malloc.
Dario
Rivedendolo credo sia un’estensione del C++ fatta da g++, quindi probabilmente il tuo compilatore (che sembra il compilatore microsoft) non la supporta.
Ah, in effetti il link che hai postato spiega che il compilatore C di visual studio non supporta (volutamente) tutte le feature di C, quindi magari gli array variable-sized sono semplicemente una delle feature che Microsoft ha deciso di non supportare