Je suis toujours sur mon projet de datalogger et je suis confronté à un autre problème.
L'adresse mac de mon Ethernet shield est stockée sous la forme d'un tableau de byte {0x90, 0xA2, 0xDA, 0x80, 0x0A, 0x4C} et je souhaite réaliser une fonction me permettant de retourner cette adresse mac sous la forme d'un tableau de char "90:A2:DA:80:0A:4C"
J'ai bien trouvé différente méthode pour créer mon tableau de char mais mon problème se situe lorsqu'il s'agit de retourner ce tableau en fin de fonction.
A mon avis tu devrais profiter de l'occasion pour essayer de comprendre plus avant les notions de C qui te font défaut.
Le plus gros problème de ton code réside dans la gestion de l'allocation de mémoire pour une chaîne de caractère.
Ton "char ma[18]" n'est alloué qu'à l'intérieur de ta fonction macAddressToString.
à moindre modif de code, je pense que tu peux le remplacer par "static char ma[18]" mais s'il te plait documente toi et essaye de trouver par toi-même pourquoi cela résout le pb. Ce sera plus instructif.
Pour le reste l'intérieur de ta fonction macAddressToString me semble compliqué mais fonctionne (la boucle for et ce qui suit).
Supprime les 3 Serial.print à l'intérieur de ta fonction, qui font doublon avec ceux de la fonction setup()
NB : si c'est juste pour afficher l'adresse MAC sur le port série, un Serial.print(mac[i],HEX) fait l'affaire.