Bonjour,

Je me pose une question :
Je crée des fonctions qui manipulent des tableaux de char.
J'ai la plupart du temps en entrée de la fonction deux tableaux, un que je lit et un où j'écrit, et je déclare donc celui que je lit en const.

Mais parfois, je passe le même tableau en lecture et écriture. Ca ne pose pas de problème de compilation ni d'exécution malgrès le fait que j'écrit dans une zone mémoire qui a été passé const sous un nom différent.
Mais je me demande si ça peut poser des problèmes ?
Comment cela est il géré ?

merci

petit exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
void ma_fonction(char * out, const char * in, size_t size) {
  int i;
  for( i = 0; i < size; i++) {
    out[i] = in[i]; //exemple trivial qui ne sert à rien
  }
}
 
//appel :
ma_fonction(tab1, tab2, size);
//mais parfois :
ma_fonction(tab1, tab1, size);