Arrays of strings : utilisation correcte des tableaux de caractères

J-M-L:
par exemple regardez cela:

float f = 12.345;

char message[30]; // prévoir assez de place pour ce que vous voulez y stocker + 1 caractère en plus (le '\0' à la fin)

#define precision 3

void setup() {
  Serial.begin(115200);
  Serial.print("f = "); Serial.println(f, precision);

dtostrf(f, 1, precision, message); // avr-libc: <stdlib.h>: General utilities
  Serial.print("f = "); Serial.println(message);
}

void loop() {}




ça envoie sur la console série le même message ASCII mais c'est géré de 2 façons différentes.

Bonjour
J'ai essayé d'utiliser la fonction dtostrf mais sans succès. Voici mon code

const int sensorNumber = 3;
const char* sensorName[] = {"temperature", "moisture", "noiselevel"};
char* sensorValue[sensorNumber];

void setup()
{
    Serial.begin(115200);
    ...
}

void loop()
{
    dtostrf(GetTemperatureAM2302(), 1, 3, sensorValue[0]);
    ...
}

Sachant que GetTemperatureAM2302() retourne un float.
Je n'ai pas d'erreur à la compilation mais le code ne fonctionne pas. Je dois déborder sur de l'espace mémoire.

Il y a quelque chose qui m'échappe. Quand je déclare mon sensorValue avec char* sensorValue[sensorNumber]; je déclare bien un pointeur sur un tableau de char qui aura 3 cases. Mais jamais je ne réserve de taille mémoire pour le contenu de chaque case !

Merci de vos retours