J'ai une classe avec un private char str[256];
et pour cela j'ai un constructeur explicite:
explicit myClass(const char *func)
{
strcpy(str,func);
}
Je l'appelle comme:
myClass obj("example");
Lorsque je compile ceci, je reçois l'avertissement suivant:
conversion obsolète de la constante de chaîne en 'char *'
Pourquoi cela arrive-t-il?
strncpy(str, func, 255)
au lieu destrcpy(str, func)
pour une copie plus sûre. Et puis n'oubliez pas d'ajouter le '\ 0' à la fin de la chaîne car strncpy ne l'ajoute pas.