Mam klasę z rozszerzeniem private char str[256];
i do tego mam jawnego konstruktora:
explicit myClass(const char *func)
{
strcpy(str,func);
}
Nazywam to tak:
myClass obj("example");
Kiedy to kompiluję, otrzymuję następujące ostrzeżenie:
przestarzała konwersja ze stałej łańcuchowej na „char *”
Dlaczego to się dzieje?
strncpy(str, func, 255)
zamiast,strcpy(str, func)
aby uzyskać bezpieczniejszą kopię. A potem nie zapomnij dodać „\ 0” na końcu ciągu, ponieważ strncpy go nie dodaje.