Ich habe eine Klasse mit einem private char str[256];
und dafür habe ich einen expliziten Konstruktor:
explicit myClass(const char *func)
{
strcpy(str,func);
}
Ich nenne es als:
myClass obj("example");
Wenn ich dies kompiliere, erhalte ich die folgende Warnung:
veraltete Konvertierung von String-Konstante in 'char *'
Warum passiert dies?
strncpy(str, func, 255)anstellestrcpy(str, func)für eine sicherere Kopie verwenden. Und vergessen Sie dann nicht, das '\ 0' am Ende des Strings hinzuzufügen, da strncpy es nicht hinzufügt.