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 :

probleme d affectation


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut probleme d affectation
    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
     
    void function(char *p1, char *p2)
    {
     
    p1 = "hello";
    p2 = "salut";
     
    p1[1] = p2[1];
     
    printf("%s", p1);
    }
     
    int main()
    {
    function("hello", "salut");
    }
    Normalement on devrait avoir en sortie:

    hallo


    Mais j'ai un "bus error";

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par even_s Voir le message
    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
     
    void function(char *p1, char *p2)
    {
    /* -ed- inutile. Les parametres sont la pour ca... */
    p1 = "hello";
    p2 = "salut";
     
    p1[1] = p2[1];
     
    /* -ed- est-ce bien sa place ? */
    printf("%s", p1);
    }
     
    int main()
    {
    function("hello", "salut");
    }
    Mais j'ai un "bus error";
    Normal, tu cherches à modifier une chaine littérale. Ce n'est pas permis. Il faut utiliser des tableaux de char :
    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
     
    #include <stdio.h>
     
    void function (char *p1, char *p2)
    {
       p1[1] = p2[1];
    }
     
    int main (void)
    {
       char s1[] = "hello";
       char s2[] = "salut";
       function (s1, s2);
       printf ("%s\n", s1);
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    hallo
     
    Press ENTER to continue.

Discussions similaires

  1. Probleme d'affectations des personne à leurs poste
    Par mehdi_m1986 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 18/04/2007, 10h14
  2. Probleme d'affectation sur un objet ORACLE
    Par tykool dans le forum SQL
    Réponses: 1
    Dernier message: 13/04/2007, 10h06
  3. modélisation d'un probleme d'affectation de ressources
    Par leguigou dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/06/2006, 19h01
  4. Réponses: 6
    Dernier message: 29/05/2006, 20h58
  5. Réponses: 1
    Dernier message: 29/05/2006, 12h37

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