bonsoir les amis

j'utilise code blocks 10.05

un petite question
j'ai défini dans ce programme (*resultat) chaine de caractères
le programme marche très bien mais mon professeur m'a dit qu'il fallait définir une allocation dynamique pour (resultat)
je ne trouve pas pourquoi c'est nécessaire
le programme permet de convertir les base il est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdlib.h>
 
void main()
{
    int n,b,i,r;
    char *resultat;
    do{
    printf("donner le nombre entier n<32000");
     scanf("%d",&n);
      }while(n>32000);
 
      do{
      printf("donner la base b");
      scanf("%d",&b);
      }while((b<2)||(b>9));
      for(i=0;n!=0;i++)
      {
          r=n%b;
          resultat[i]=r+'0';
          n=n/b;
      }
resultat[i]='\0';
printf("%s",strrev(resultat));
}
le type d'allocation qu'il dit que je dois utiliser est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
resultat=(char*)malloc(strlen(resultat)*sizeof(char));
merci d'avance pour votre réponse