Bonjour toute la communauté française.
Très grand débutant, j'ai du mal à comprendre les résultats sur le moniteur série de mon sketch ci dessous.
Y a t'il un passionné qui puisse l'analyser et me dire où se situent mes erreurs.
le but:
assigner un tableau de char à trois éléments de la structure,
copier directement depuis la mémoire chaque octet puis l'assigner à un tableau de char de même longueur que la structure,
écrire sur le moniteur série ce tableau de char.
Le résultat m'étonne, il semble que seul le premier élément de la structure soit copié.(Voir la copie d'écran)
merci de votre aide.
struct st
{
char t1[10];
char t2[10];
char t3[10];
}ms;
void setup()
{
Serial.begin(9600);
// assignation par copie du tab de char dans chaque element de ms
char f[]={'f','r','e','d'}; // sans le zero de fin de string ?
memcpy(ms.t1,f,10);
memcpy(ms.t2,"aline",10);
memcpy(ms.t3,"monique",10);
char st[sizeof(ms)]; // le tableau
memcpy(st,&ms,sizeof(ms));//la copie st est supposé contenir la totalité de la structure
Serial.println(ms.t1);//retourne bien fred
Serial.println(ms.t2);//retourne bien aline
Serial.println(ms.t3);//retourne bien monique
Serial.print("ms: ");Serial.println((char*)&ms);// seulement ms: fred
Serial.print("st: ");Serial.println(st);// ici pareil où sont mes erreurs?
Serial.println(sizeof(st));
Serial.println(sizeof(ms));
}
void loop() {
}
es_struct3.ino (835 Bytes)