Erreur d’assignation probablement simple mais déroutante

#include  int main() { char gradesList[5]; gradesList[2] = "X"; printf("%c", gradesList[2]); } 

Lorsque j’essaie d’exécuter ce code, j’obtiens ces erreurs:

Conversion de pointeur en entier incompatible

L’affectation crée un entier à partir d’un pointeur sans transtypage

Vous devez affecter un caractère et non un pointer to a ssortingng literal . Utilisez ' au lieu de "

 gradesList[2] = 'X'; 

En C, les littéraux de chaîne sont représentés par des doubles qoutes, c’est-à-dire ' .

Depuis que vous avez déclaré gradesList tant que tableau de caractères. Et essayez d’affecter un pointeur à un littéral de chaîne, vous obtenez cette erreur.

Tout ce qui est entre guillemets est considéré comme une chaîne.

Tu devrais utiliser :

 gradesList[2] = 'X';