“erreur: l'affectation à l'expression de la matrice de type error” quand je assigner une structure de champ (C)

Je suis un débutant programmeur C, hier, j'ai appris l'utilisation des structures et de l'application éventuelle de ceux-ci au sujet de la résolution de problèmes spécifiques. Cependant, quand je faisais des expériences avec mon C IDE (Codeblocks 16.01) afin d'en apprendre cet aspect de la programmation en C, j'ai rencontré un étrange problème. Le code est le suivant:

#include <stdio.h>

#define N 30

typedef struct{
     char name[N];
     char surname[N];
     int age;
} data;

int main() {
     data s1;
     s1.name="Paolo";
     s1.surname = "Rossi";
     s1.age = 19;
     getchar();
     return 0;
}

Lors de la compilation, le compilateur (GCC 4.9.3-1 sous Windows) m'a confié une erreur qui dit que

"erreur: affectation à l'expression avec l'ensemble erreur de type"

sur instruction

s1.name="Paolo" 
s1.surname="Rossi" 

alors que si je ne

data s1 = {"Paolo", "Rossi", 19};

il fonctionne.
Ce que je fais mal?

  • Vous avez découvert l'une des différences entre la cession et de l'initialisation.
  • Pouvez-vous être plus précis? merci 😉
  • Vous pouvez écrire s1 = (const data){"Paolo", "Rossi", 19};
InformationsquelleAutor Chief096 | 2016-05-14