Hola,
El truco son los punteros. Defines tu variable como puntero al tipo del que va a ser el array (int, char, ...) y luego creas el array con new[]:
Código:
int * matriz;
int elementos;
elementos=25; // o lo obtienes de un parametro en una funcion
matriz=new int[elementos];
Puedes revisar
http://www.parashift.com/c++-faq-lit...html#faq-16.19
Suerte.
PD: OJO, mi C/C++ esta muy oxidado.
PD2: Creo que en C++ es mejor usar las clases tipo vector y demas (creo que vienen en la STL???)