Error:incompatible types in assignment de 'const char[5]' en 'char[10]'
Je l'ai défini comme c
char c[][10]
dans la définition de la fonction et l'a utilisé comme c[i]="gray";
Quoi de mal? J'ai cherché sur le net, il montre la même syntaxe.
Grâce.
- Eh bien, quoi d'avertissement ou d'erreur voyez-vous?
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser d'affectation (
=
) sur un tableau. Si vous modifiezc
à un tableau de pointeurs, qui pourraient travailler, en fonction de ce que vous devez faire avec elle.Ou si le type déclaré doit être tableau de tableaux, vous pouvez utiliser
strncpy
:strncpy
! Il peut éventuellement vous laisser avec les non-null cordes.Le problème, c'est que les tableaux ne sont pas cessibles en C. les constantes de Chaîne comme
"gray"
sont tableau de caractères constantes: dans ce cas, le type estchar[5]
(4 + 1 pour la valeur null).Si vous savez que le tableau de destination est suffisamment grand pour contenir la chaîne souhaitée, vous pouvez utiliser
strcpy
pour copier la chaîne comme suit:Une meilleure idée est d'utiliser un sûr fonction telle que
strlcpy
(BSD systèmes et Mac OS X) oustrcpy_s
(Windows):Toutefois, ces fonctions sont spécifiques à la plateforme et pas du tout portable. Vous pouvez également rouler votre propre mise en œuvre si la vitesse n'est pas un problème:
Ne pas utilisation
strncpy
, depuis il pourrait vous laisser avec un non-null-terminated stringEssayez d'utiliser
strcpy()
(qui se trouve dans lecstring
en-tête) au lieu de la simple affectation.ce code de travail et prendre la bonne assignements de 3 façons différentes:
s'exécute correctement sur ubuntu serveurs. n'a pas de test sur d'autres systèmes.