En lisant / essayant une réponse récente, j'ai été surpris de voir que la classe String
d'Arduino prend en charge la méthode c_str ()
, tout comme la classe C ++ std :: string
. Comme prévu, il semble obtenir un pointeur vers le contenu de la chaîne sous la forme d'un tableau char
terminé par un zéro (c'est-à-dire une chaîne de style C).
Cependant, (dans la mesure où je peux voir) cette méthode n'est pas mentionnée dans la documentation officielle Arduino. De plus, dans tous les exemples de code que j'ai vus en utilisant String
, une approche différente semble être utilisée. Un tampon secondaire char
est configuré, puis le contenu de la chaîne y est copié en utilisant String :: toCharArray ()
. Cela nécessite évidemment le double de la mémoire, plus une opération de copie O (n).
Il semble que c_str ()
devrait être l'approche préférée. Y a-t-il une raison pour laquelle toCharArray ()
est plus couramment utilisé?