Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de compilation de mon programme

prolème d'allocation dynamique ?

    29 novembre 2008 à 12:01:07

    Bonjour à tous,
    Voila j'ai un petit problème, le script qui suit ne passe pas à la compilation, le programme retourne 1 (donc il est pas tout a fait d'accord :p).
    J'ai repris mon programme et ai pu cerner le problème qui a priori viens de cette fonction.

    Je pense que cela est du à l'allocation dynamique (première fois que j'en fait).
    Sinon dans le main j'ai les librairies stdio.h, stdlib.h, math.h, string.h.
    Détail : je travail sous macintosh et le compilateur est gcc 4.0


    char* cryptRSA(char *pPhrase)
    {
    	int * largePhrase = NULL;
    	char * Phrase = NULL;
    	
    	largePhrase = malloc(sizeof(int));
    	if (largePhrase == NULL)
    	{
    		exit(0);
    	}
    		
    	printf("Combien de carractère aura votre phrase ?\n");
    	scanf("%d", largePhrase);
    	
    	
    	Phrase = malloc((*largePhrase) * sizeof(char));
    	if (Phrase == NULL)
    	{
    		exit(0);
    	}
    	
    	printf("Saisissez votre phrase");
    	pPhrase = Phrase;
    	while( (*pPhrase++ = getchar()) != '\n' );
    	*--pPhrase = '\0';
    	
    	pPhrase = Phrase;
    	return pPhrase;
    }
    


    Voila, j'espère que vous pourrez m'aider.
    Cordialement, mixka13
    • Partager sur Facebook
    • Partager sur Twitter
      29 novembre 2008 à 12:20:50

      scanf("%d", largePhrase);

      edit: sorry, mais tu pourrait vraiment te passer de l' allocation de largePhrase .. pour un int ..
      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2008 à 12:30:55

        Arf, désolé mais je ne vois pas le problème que tu souligne ...

        erdit : oui je sais bien mais j'en est l'utilité plus tard dans le programme, et donc si elle n'est pas alloué dynamiquement, je la perdrais à la fin de ma fonction.
        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2008 à 12:35:28

          Enfaite je comprend pas trop ce que tu vodrais que ta fonction fasse.
          • Partager sur Facebook
          • Partager sur Twitter
            29 novembre 2008 à 12:36:55

            Normal, elle est pas fini, mais rien que ça passe pas à la compilation, c'est pour ca que je pense qu'il y a un problème avec l'alloc'
            • Partager sur Facebook
            • Partager sur Twitter
              29 novembre 2008 à 12:39:55

              c' est possible de voir le main() ? et une petite explication sur ce que tu voudrais qu' il fasse ..
              • Partager sur Facebook
              • Partager sur Twitter
                29 novembre 2008 à 14:36:29

                voici le main.c
                #include "fonctions.c"
                
                int main (int argc, char * const argv[]) 
                {
                	char * pPhrase = NULL; //pointeur vers le tableau de chaine de caractères
                	//cryptRSA(pPhrase);
                	
                	
                	return 0;
                }
                


                et le fichier de prototypes
                //HEADERS
                
                char * cryptRSA(char *pPhrase);
                


                la fonction doit juste récupérer une chaine de caractère, faire deux/trois manip dessus et renvoie le tableau
                • Partager sur Facebook
                • Partager sur Twitter
                  29 novembre 2008 à 16:03:59

                  ba j' aurais fais un truc comme ca moi (sans avoir trop touché ton code et sans trop comprendre):

                  #include <stdio.h>
                  #include <stdlib.h>
                  #include <string.h>
                  
                  char* cryptRSA(char *pPhrase);
                  
                  
                  int main(int argc ,char **argv)
                  {
                      char * pPhrase = NULL;
                      pPhrase = cryptRSA(pPhrase);
                      printf("%s", pPhrase);
                      return EXIT_SUCCESS;
                  }
                  
                  char* cryptRSA(char *pPhrase)
                  {
                  	int * largePhrase = NULL;
                  	char * Phrase = NULL;
                  	int c;
                  
                  	largePhrase = malloc(sizeof(int));
                  	if (largePhrase == NULL)
                  	{
                  		exit(0);
                  	}
                  
                  	printf("Combien de carractère aura votre phrase ?\n");
                  	scanf("%d", largePhrase);
                          while(((c = getchar()) != '\n') && c != EOF);
                  
                  	Phrase = malloc((*largePhrase) * sizeof(char));
                  	if (Phrase == NULL)
                  	{
                  		exit(0);
                  	}
                  
                  	printf("Saisissez votre phrase :\n");
                  	pPhrase = Phrase;
                  	fgets(Phrase, *largePhrase, stdin);
                  
                  	pPhrase = Phrase;
                  	return pPhrase;
                  }
                  


                  Mais je vois pas le rapport avec RSA la o_O

                  Et encore le code que je te fourni et vraiment mauvais ... j aime pas ca.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Problème de compilation de mon programme

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown