char nom[25] réserve 25 "cases" en mémoire, donc permet de stocker un nom de 24 caractères (plus le \0 terminal de fin de chaîne).
char nom[1000000], ça gâche la mémoire.
Si on connait la taille de ce qu'on veut y mettre, on peut faire
char *nom; // pointeur
nom = (char *)malloc(Volume + 1); // alloue de la mémoire en quantité suffisante, le +1 est pour le '\0' terminal.
si nom != NULL, on peut l'utiliser
nom[0] = '\0'; si on veut l'initialiser
quand fini d'exister, on fait un free(nom);
Le pointeur existe toujours, mais il n'y a plus de mémoire associée.
En C++ (je débute), on peut faire
nom = new char[Volume + 1];
puis
delete nom; // pr libérer la mémoire