Partage
  • Partager sur Facebook
  • Partager sur Twitter

assignment of read-only location

Fin de tableau

    22 octobre 2019 à 11:20:41

    Bonjour,

    J'essaie de copier une chaine.

    Je fais un test sur fin de tableau et j'ai une erreur "assignment of read-only location" !! ??

    Help ! (et merci par avance)

    #include <stdio.h>

    char *my_strcpy (char *dest, const char *src)

    {

    int i;

    for (i=0; i<15; i = i+1)

    {   dest[i] = src[i];

        printf ("%c\n",src[i]);

        printf ("%c\n",dest[i]);

        if (src[i]='\0'){

        i=32;

        }

    return dest;

    }

    void main(int argc)

    {

    char *sstr= "str_test";

    char dest[30];

    my_strcpy(dest, sstr);

    return;

    }

    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2019 à 11:33:54

      Salut,

      Déjà utilise les </> pour mettre du code c'est plus lisible.

      Ensuite ton problème vient de cette ligne :

      if (src[i]='\0'){
          i=32;
      }


      Une comparaison c'est ==

      if (src[i]=='\0'){
          i=32;
      }



      -
      Edité par DarkJambon 22 octobre 2019 à 11:34:30

      • Partager sur Facebook
      • Partager sur Twitter
        22 octobre 2019 à 12:46:52

        Ta fonction ne traite que les chaînes de 15 caractères maximum ?

        En fait tu devrais faire copie tant que scr[i] est différent du caractère fin de chaîne !

        De plus ta fonction ne devrais faire que de la copie, pas de l'affichage !

        -
        Edité par rouloude 22 octobre 2019 à 12:47:13

        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2019 à 20:23:45

          Merci à vous pour vos réponses.

          Débutant, je me fais encore avoir par la différence entre = et ==.

          J'ai corrigé et "nettoyé" mon code.

          Grâce à vous ça tourne maintenant.

          Merci encore.

          • Partager sur Facebook
          • Partager sur Twitter

          assignment of read-only location

          × 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