2017-09-19 1 views
0

lorsque je tente d'exécuter le code suivant, je reçois cet avertissement:C - pointeur incompatible à la conversion d'entier?

warning: incompatible pointer to integer conversion assigning to 
    'char' from 'char *'; dereference with * [-Wint-conversion] 
    namesList[0]=name1; 

Voici mon code:

int main(){ 
    char namesList[20]; 
    char *name1="Nelson Mandela"; 
    namesList[0]=name1; 
    return 0; 
} 

Comment puis-je me débarrasser de cet avertissement? Je vous remercie.
Edit: Jonathan Leffler m'a aidé à résoudre ce problème en faisant namesList[0] = *name1;

+2

Attribuez un caractère et pas un pointeur char. Par exemple, 'namesList [0] = * noms1;'. Ou modifiez une définition de variable. Cela dépend de ce que vous voulez faire –

+1

Voulez-vous affecter un seul caractère ou la chaîne entière? Vérifiez 'strcpy' pour ce dernier. –

+0

@JonathanLeffler Merci qui a fonctionné :) – fredjohnson

Répondre

0

Vous cherchez comment vous avez écrit votre code, il semble que vous voulez namesList être un tableau de chaînes, afin de le corriger, vous devez changer votre code:

int main(){ 
    char *namesList[20]; 
    char *name1="Nelson Mandela"; 
    namesList[0]=name1; 
    return 0; 
}