IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

ou est le bug ?


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut ou est le bug ?
    Bonjour a tous
    Pour progresser un peu en language c j'ai décidé faire le tp (du pendu) du site du 0
    Meme si le tp n'est pas encore fini et le programme peut etre amélioré je n'arrive pas a comprendre le résultat qu'affiche le printf (Quelle est le mot secret ? )

    je vous en serais vraiment très reconnaissant si vous pouviez me dire ce qui ne marche pas: j'ai posté le code ci dessous


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include "main.h"
     
    void inialiser(char* chainejeu ,int tailletableau)
    {
    int i=0;
    char vide='*';
     
        for(i=0;i<tailletableau;i++)
        {
        chainejeu[i]=vide;
        }
     
    }
     
    char lireCaractere()
    {
        char caractere = 0;
     
        caractere = getchar(); // On lit le premier caractère
        caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
     
        // On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
        while (getchar() != '\n') ;
     
        return caractere; // On retourne le premier caractère qu'on a lu
     
    }
     
    int cherchercaractere (const char* chaineatrouver ,char caractere, char* chainejeu) //on cherche le caractere demandé et si on le trouve on l'ajoute
    {
    int longeur=strlen(chaineatrouver);
    int i=0;
    int trouver=0;
    char temp=NULL;
     
     
        for (i=0;i<longeur;i++)
        {
        temp=chaineatrouver[i];
     
            if(temp == caractere)
            {
            chainejeu[i]=chaineatrouver[i];
            trouver++;
            }
     
            else
            {
            }
        }
    return trouver;
    }
     
     
     
    int main()
    {
    char motsecret[]="MARRON";
    int longeurdeviner=strlen(motsecret);
    printf("%d\n" ,longeurdeviner);
     
     
    char *chainejeu=NULL;
    chainejeu=malloc(sizeof(char)*longeurdeviner);
     
    if(chainejeu!=NULL)
    {
    printf("ca vient pas de l alloc\n\n");
    }
     
    char malettre=NULL;
    int couprestant=10;
    int j=0;
    int gagner =0;
    int pendu =1;
     
    inialiser(chainejeu,longeurdeviner);
     
        for(j=0;j<10;j++)
        {
        printf("il vous reste %d coup a jouer\n" ,couprestant);
        printf("Quelle est le mot secret ? %s\n" ,chainejeu);
        malettre=lireCaractere();
        gagner=cherchercaractere(motsecret,malettre,chainejeu);
     
            if(gagner !=0)
            {
            printf("cette lettre existe\n\n");
            }
     
            else
            {
            printf("perdu\n\n");
            }
        couprestant--;
        }
     
    pendu=strcmp(motsecret,chainejeu);
    free(chainejeu);
     
            if(pendu ==0)
            {
            printf("tu as gagner\n");
            }
     
            else
            {
            printf("tu as perdu\n");
            }
     
     
     
     
    return 0;
     
    }

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Peux-tu expliciter ton problème?
    Je n'arrive pas à voir ce que tu as du mal à comprendre...

    Edit: Par contre, le malloc devrait allouer un caractère de plus...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    lors de l éxécution du programme lors de l'affichage de la chainejeu le nombre de caractère visible dépasse le nombre de caractère réserver par la fonction malloc .
    J'aimerais que l'on voit 6 étoiles correspondant au nombre de lettre a trouver dans le mot MARRON au dela de ca on voit 6 étoiles et un caractère tordu , c'est ca que je ne comprend pas

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Citation Envoyé par alpha281189 Voir le message
    lors de l éxécution du programme lors de l'affichage de la chainejeu le nombre de caractère visible dépasse le nombre de caractère réserver par la fonction malloc .
    J'aimerais que l'on voit 6 étoiles correspondant au nombre de lettre a trouver dans le mot MARRON au dela de ca on voit 6 étoiles et un caractère tordu , c'est ca que je ne comprend pas
    chainejeu n'a pas été terminée par le 0 terminal des chaines.
    Et tient compte de la remarque de Médinoc

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    merci pour vos réponses .
    j'ai suivi vos conseils mais ca ne marche toujours pas :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include "main.h"
     
    void inialiser(char* chainejeu ,int tailletableau)
    {
    int i=0;
    char vide='*';
     
        for(i=0;i<tailletableau-1;i++)
        {
        chainejeu[i]=vide;
        }
    chainejeu[tailletableau]='\n';
    }
     
    char lireCaractere()
    {
        char caractere = 0;
     
        caractere = getchar(); // On lit le premier caractère
        caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
     
        // On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
        while (getchar() != '\n') ;
     
        return caractere; // On retourne le premier caractère qu'on a lu
     
    }
     
    int cherchercaractere (const char* chaineatrouver ,char caractere, char* chainejeu) //on cherche le caractere demandé et si on le trouve on l'ajoute
    {
    int longeur=strlen(chaineatrouver);
    int i=0;
    int trouver=0;
    char temp=NULL;
     
     
        for (i=0;i<longeur;i++)
        {
        temp=chaineatrouver[i];
     
            if(temp == caractere)
            {
            chainejeu[i]=chaineatrouver[i];
            trouver++;
            }
     
            else
            {
            }
        }
    return trouver;
    }
     
     
     
    int main()
    {
    char motsecret[]="MARRON";
    int longeurdeviner=strlen(motsecret)+1;
    printf("%d\n" ,longeurdeviner);
     
     
    char *chainejeu=NULL;
    chainejeu=malloc(sizeof(char)*longeurdeviner);
     
    if(chainejeu!=NULL)
    {
    printf("ca vient pas de l alloc\n\n");
    }
     
    char malettre=NULL;
    int couprestant=10;
    int j=0;
    int gagner =0;
    int pendu =1;
     
    inialiser(chainejeu,longeurdeviner);
     
        for(j=0;j<10;j++)
        {
        printf("il vous reste %d coup a jouer\n" ,couprestant);
        printf("Quelle est le mot secret ? %s\n" ,chainejeu);
        malettre=lireCaractere();
        gagner=cherchercaractere(motsecret,malettre,chainejeu);
     
            if(gagner !=0)
            {
            printf("cette lettre existe\n\n");
            }
     
            else
            {
            printf("perdu\n\n");
            }
        couprestant--;
        }
     
    pendu=strcmp(motsecret,chainejeu);
    free(chainejeu);
     
            if(pendu ==0)
            {
            printf("tu as gagner\n");
            }
     
            else
            {
            printf("tu as perdu\n");
            }
     
     
     
     
    return 0;
     
    }

  6. #6
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Première chose :
    Citation Envoyé par diogene Voir le message
    chainejeu n'a pas été terminée par le 0 terminal des chaines.
    Et deuxième chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /* L'index tailleTableau ne t'appartient pas, il faut faire tailleTableau-1 */
    /* Et pour faire suite à la remarque dite plus haut,
     * ce n'est pas \n mais \0 qu'il faut affecter */
    chainejeu[tailletableau]='\n';
    On n'initialise pas non plus une variable à NULL !
    C'est un pointeur qu'on initialise à NULL, une variable s'initialise à 0 (ou autre)

    Un else avec aucune instruction dedans ne sert à rien, tu peux le supprimer

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    merci de vos conseils ,j'ai compris et ca marche

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    voila , maintenant j'ai un autre problème:
    j'ai crée une chaine de taille dynamique (attribué par un malloc)
    j'aimerais pouvoir modifiler le contenu de cette chaine : comment y accéder
    *chainedynamique=quelquechose ne marchepas

    voici le morceau de code en question:
    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
     
    char transfermot (FILE* fichier,long positonnement)
    {
    char conteneur2[100];
    int nombrealire=100;
    char *atransferer=NULL;
    int size=0;
     
    fseek(fichier,positonnement,SEEK_SET);
    fgets(conteneur2,nombrealire,fichier);
    size=strlen(conteneur2);
     
    atransferer=malloc(sizeof(char) *size);
    *atransfer="blabla";
    strcpy(*atransfer,conteneur2);
    }

  9. #9
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 338
    Points
    2 338
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    *atransfer="blabla";
    strcpy(*atransfer,conteneur2);
    Ceci ne marchera pas.

    Une fois un malloc fais, on accede aux element comme un tableau classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    atransfer[0] = 'b';
    atransfer[1] = 'l';
    atransfer[2] = 'a';
    atransfer[3] = 'b';
    atransfer[4] = 'l';
    atransfer[5] = 'a';
    Et ensuite,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strcpy(atransfer,conteneur2);
    Tout simplement.

    En supposant qu'effectivement, size est >= à 6, sinon SIGSEV ...

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    y'a aucun moyen pour faire autrement ?
    donc strcpy ne peut pas fonctionner avec *atransferer ?

  11. #11
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 338
    Points
    2 338
    Par défaut
    Euh, normalement si.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strcpy(atransfer,conteneur2);
    Cela ne marche pas ? Attention, j'ai enlevé '*' !

    Ce qui me gene, c'est ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    *atransfer="blabla";
    Pourquoi vouloir mettre dans atransferer un chaine de caractere qui pourrait faire un SIGSEV, chaine de caractere bidon puisque ecrasé ensuite par le strcpy ?
    C'etait un test ?

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    bon alors si je comprend bien ca donne

    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
     
    int transfermot (FILE* fichier,long positonnement,char* atransferer)
    {
    char conteneur2[100];
    char temp=0;
    int nombrealire=100;
    int size=0;
     
    fseek(fichier,positonnement,SEEK_SET);
    fgets(conteneur2,nombrealire,fichier);
    size=strlen(conteneur2);
    printf("ceci est le contenu du conteneur2 %s\n" ,conteneur2);
    printf("ceci ets la taille de l'allocation %d\n" ,size);
     
    atransferer=malloc(sizeof(char) *size);// c pas ici que sa plante
     
     
    strcpy(atransferer,conteneur2);
    return size;
    }
    pour la fonction

    et pour affiche le atransferer dans le main ca donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    fichier=fopen("dicco.txt" ,"r");
     
        if (fichier !=NULL)
        {
        positionement=lecturealeatoire(fichier,nombreMystere);
        size=transfermot(fichier,positionement,atransferer);
     
            for(i=0;i<size-1;i++)
            {
            printf("ceci est le premier caractère %c" ,atransferer[i]);
            }
        }
    et pourtant a ce niveau la le programme plante

  13. #13
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 338
    Points
    2 338
    Par défaut
    Ok, il plante, et ?

    Il plante ou, le compilo indique quoi s'il indique quelque chose ?

    J'ai un peu du mal comme ca, si on a le message d'erreur, on pourra plus facilement t'aider.

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    l'erreur vient de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    atransferer=malloc(sizeof(char) *size);
    le compilateur indique invalid conversion form void* to char*

  15. #15
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Tu compiles en C++, pas en C

  16. #16
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    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
    int transfermot (FILE* fichier,long positonnement,char* atransferer)
    {
      ....
      atransferer=malloc(sizeof(char) *size);// c pas ici que sa plante
      .... 
      strcpy(atransferer,conteneur2);
      return size;
    }
    ....
        size=transfermot(fichier,positionement,atransferer);
     
            for(i=0;i<size-1;i++)
            {
            printf("ceci est le premier caractère %c" ,atransferer[i]);
            }
    Dans transfermot(), atranferer est local et n'a rien à voir avec le atransferer utilisé par l'appel de la fonction.
    Si tu veux que la fonction "connecte" les deux, utilise la liste des paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int transfermot (FILE* fichier,long positonnement,char** atransferer)
    {
      ....
      *atransferer=malloc(sizeof(char) *size);// c pas ici que sa plante
      .... 
      strcpy(*atransferer,conteneur2);
      return size;
    }
    ....
        size=transfermot(fichier,positionement,&atransferer);

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    effectivement il n'y a pas de problèle de convertion cependant a partir de la ligne ou j'affiche le premier caractère , le programme bug , pas d'erreur ala compilation , le programme ss'exécute et plante la console de windows retourne processus returned : -107374819 (0*c000005)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     if (fichier !=NULL)
        {
        positionement=lecturealeatoire(fichier,nombreMystere);
        size=transfermot(fichier,positionement,atransferer);
     
            for(i=0;i<size-1;i++)
            {
            printf("ca marche encore");
            printf("ceci est le premier caractère %c" ,atransferer[i]);
            printf("ca marche plus");//ici
            }
        }

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    plus précisement je veux dire que ce code:
    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
     
    fichier=fopen("dicco.txt" ,"r+");
     
        if (fichier !=NULL)
        {
        positionement=lecturealeatoire(fichier,nombreMystere);
        size=transfermot(fichier,positionement,atransferer);
        printf("%s\n\n" ,atransferer);
     
            for(i=0;i<size-1;i++)
            {
            printf("ca marche encore");
            printf("ceci est le premier caractère %c\n" ,&atransferer[i]);
            printf("ca marche plus");
            }
        }
    est a l'origine de la capture mis en picèe jointe;
    Images attachées Images attachées  

  19. #19
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    J'ai comme l'impression que tu n'as pas tenu compte de mes observations.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        positionement=lecturealeatoire(fichier,nombreMystere);
        size=transfermot(fichier,positionement,atransferer);
    ne peut pas modifier atransferer, donc dans transfermot()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    atransferer=malloc(sizeof(char) *size);// c pas ici que sa plante
    strcpy(atransferer,conteneur2);
    ne sert à rien qu'à faire une fuite mémoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            printf("ceci est le premier caractère %c\n" ,&atransferer[i]);
    Puisque, apparemment, atransferer devrait être l'adresse d'une chaine de char, atransferer[i] est un char et ,&atransferer[i] l'adresse d'un char. Pourquoi essayer d'afficher l'adresse d'un char plutôt que le char ?

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    merci beaucoup de m'avoir aider

Discussions similaires

  1. Réponses: 85
    Dernier message: 08/02/2011, 18h02
  2. est ce que c'est un bug d'affichage ?
    Par aymenet1 dans le forum Débuter
    Réponses: 2
    Dernier message: 28/02/2010, 23h17
  3. Timer/Compteur/où est le bug ?
    Par DURVILLE dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2008, 10h33
  4. Grand jeu concours "Ou est mon bug? : Repere inversé"
    Par arnolpourri dans le forum DirectX
    Réponses: 10
    Dernier message: 03/04/2008, 10h45
  5. Solaris and le multithread -> où est le bug
    Par in dans le forum Langage
    Réponses: 4
    Dernier message: 07/02/2007, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo