La siguiente es la implementación más popular de strcpy en sistemas tradicionales. ¿Por qué dest y src no están marcados para NULL al principio? Escuché una vez que en los viejos tiempos la memoria era limitada, por lo que siempre se prefería el código corto. ¿Implementarás strcpy y otras funciones similares con las comprobaciones de puntero NULL al inicio en estos días? Por qué no?Por qué no hay controles de cordura en legado strcpy()
char *strcpy(char *dest, const char *src)
{
char *save = dest;
while(*dest++ = *src++);
return save;
}
Puede ser más seguro en general. Pero eso también significa que los desarrolladores experimentados tienen que pagar el costo de la seguridad (que no necesitan) solo para que los desarrolladores inexpertos no se arrimen. –
Los desarrolladores con experiencia tienen que pagar el costo de la seguridad (que no creen que necesitan) ... (FTFY). –
@Brian Hooper: no, si usa C, debe saber exactamente lo que necesita. Mi código incrustado nunca, nunca necesita verificaciones 'NULL' en' strcpy' porque todos los buffers están asignados estáticamente y se usan directamente. No hay forma de que pase 'NULL' a' strcpy'. Entonces, ¿por qué querría pagar el precio? No hay "no creo que necesite" al respecto. – detly