Bonour voici l'exercice sur lequel je bloque :

Le sous-programme « miroir » permet de concaténer à la phrase saisie au travers de l’option de l’exercice 1 son équivalent inversé avec un ‘ : ’ en séparateur. Voici un exemple : si la phrase saisie en 1 est « il fait beau », le résultat de cette option sera « il fait beau : uaeb tiaf li ».
Ici, le sous-programme reçoit un pointeur sur une phrase et retourne le pointeur sur une nouvelle phrase allouée dynamiquement.
L’appelant affiche la phrase résultat.

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
//ma fonction
#include "mabib.h"
 
char* inver(char* chaine)
{
   int i;
   char sais[1000];
   char* tab2;
 
   for (i=0;i<=strlen(chaine);i++)
   {
      sais[i]=chaine[strlen(chaine)-i];
   }
   tab2=(char*)malloc((strlen(chaine))*sizeof(char));
   strcpy(tab2,sais);
   return(tab2);
}
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
//mon main()
#include "mabib.h"
 
int main(int argc, char *argv[])
{
   char* chaine1;
   int toto=0;
 
   printf("Affichez la phrase à mémoriser : ");
   chaine1=saisie(chaine1);
   puts(chaine1);
   voyelle(chaine1,&toto);
   printf("\n\n %d",toto);
   puts("");
   puts(inver(chaine1));
 
   system("PAUSE");	
   return 0;
}
Si quelqu'un pourrait m'expliquer mon erreure j'ai un peu de mal, je pense que ca vient surement de mon return(tab2) mais je vois pas comment faire autrement.

Merci d'avance.