wskazówka jest w tytule, ale w zasadzie odziedziczyłem kod, który ma ponad 800 instancji strcpy. Chcę napisać nową funkcję, a następnie zamienić strcpy na strcpy_mine.strcpy ... chcesz zastąpić ciągiem strcpy_mine, który będzie strncpy i kończy się null
Więc próbuję ustalić, jaka lista parametrów będzie miała strcpy_mine.
Próbowałem:
void strcpy_mine(char* pTarget, const char* const pCopyMe)
{
const unsigned int lenAlwaysFour = sizeof(pCopyMe); //:(
strncpy(pTarget, pCopyMe, lenAlwaysFour);
//add extra terminator in case of overrun
pTarget[lenAlwaysFour] = 0;
}
ale sizeof jest zawsze 4 pCopyMe jest wskaźnikiem
czego nie chcesz zrobić, to wymienić
strcpy (buf, pCopyMe);
z
strncpy (buf, pCopyMe, sizeof(pCopyMe)); buf[sizeof(pCopyMe)] = 0;
jakieś pomysły? (Strcpy_l nie jest dostępny)
zdrowie
okrzyki!to jest prawie to, czego szukam, ale nadal zmusza mnie do umieszczenia rozmiaru bufora w znakach szewronowych, chociaż jest to buf [200]; strcpy_mine <200> (buf, pString); – timB33
strCpyMine (buf, pString); –
timB33
Potem robisz coś złego. Przestarzały kompilator? – MSalters