sprintf(var1, var2.arr);

var1 e' una variabile di stack
var2.arr e' un'array di 80 byte, dichiarato sullo stack, ed e' stato riempito appena prima con un strncpy (quindi senza '\0')

mi è stato detto che
eseguire sprintf copiando da una variabile dove non e' garantito lo '\0' e' pericoloso, si puo' sporcare lo stack in modo definitivo, corrompendo gli Instruction Pointer delle varie chiamate e corrompendo anche i registri che sono pushati sullo stack assieme ai valori delle variabili

con quale funzione conviene sostituirla?
strncpy è ok?

Grazie