Quel est la différence entre memset et \0

Bonjour,

Je vines de lire ceci
http://www.cplusplus.com/reference/cstring/memset/

en gros si mon char

char buffer[250];

a des valeurs
et je fais

memset(buffer,'\0',250)

toutes les caractere seront remplacer par \0.

Mais si je fais ceci

buffer[0]='\0';

C'est la même chose, puisque '\0' est le dernier élément de ma cahine. non?

Merci pepe
ca confirme ce que je pensais

A noter qu'à la déclaration u peux faire :

char buffer[250]={'\0'};

Pour le remplir directement

Tu penses à quel cas exactement ? Sur Arduino c'est sûr ça rempli le tableau de cette manière (et ça m'est jamais arrivé que ça ne soit pas le cas)

il est exact que ca n'initialize que les 1er caracteres spécifiés:
essaie:

char buffer[15]={'1', '2', '3', '\0', '4', '5'};
//char buffer[15];

void setup() {
  Serial.begin(9600);
  while (!Serial) {
  }
}

void loop() {

  Serial.println("affiche buffer 1:");
  String reportString = buffer;
  Serial.println(reportString);

  Serial.println("affiche buffer 2:");
  for (int i=0; i<15; i++){
    Serial.print(buffer[i], HEX);
    Serial.print(":");
  }
  Serial.println();

  Serial.println("affiche buffer 3:");
  for (int i=0; i<15; i++){
    buffer[i] = char(i+65);
  }

  for (int i=0; i<15; i++){
    Serial.print(buffer[i]);
  }
  Serial.println();

  Serial.println("END");

  while(true);
}

je me posai la question si la mémoire etaient forcement remise a 0 au boot et/ou reset,
soit par le controleur niveau hard ou dans sa sequence de boot, soit par le code d'init injecté par l'ide.

car le fait de ne pas l'initialiser renvoi quand meme 0 la ou des zone mémoire on été modifiées (sur UNO et IDE 1.0.5).