jfet ha scritto:
Ahahhaahhahaha non potevo sperare in risposta migliore. Purtroppo per me adesso è diventata una questione di principio che voglio risolvere
Se vuoi parto col "pippone" sulla contaminazione C/C++ e soprattutto, in questo caso, delle Grandi Aggiunte a C99 (essenzialmente il tentativo abortito di avere vettori "davvero" a lunghezza variabile) e a C11 (il tentativo, nuovamente abortito, di avere un "qualcosa" contro i buffer overflow).
Insomma al 99% è croppa che il programmatore di medio livello evita come la peste, facendosi magari le SUE funzioncelle di supporto che funzionano sempre (si spera) invece di ... chi può dirlo?
Ci sono stati dibattiti ferocissimi durati decenni (ancora in corso) su cosa e perchè includere in un linguaggio, e come e perchè usarlo, e magari deprecarlo ed eliminarlo dal successivo standard.
Visto che sei giovincello ti do una delle varie Perle Dell'Informatica:
se è semplice, FORSE funziona
vabbè prima di andar via, ecco uno degli esempi più clamorosi.
come funziona strncpy_s rispetto a strncpy ? Non proprio come uno se lo potrebbe aspettare (e via di voragini di sicurezza, funzionamenti anomali e difficilissimi da individuare, eccetera).
Un indizio: qualche "genio" ha deciso che visto che i programmi non hanno bug, per azzerare un buffer che contiene una stringa basta scriverci un NUL