Esimerkiksi strcpy:n käyttö on erittäin vaarallista, mikäli merkkijono jonne kopioidaan jää pienemmäksi kuin mitä kopioidaan. Tällöin kopioidaan seuraavien muistialueiden päälle. Esimerkiksi saattaisi olla:
char jono1[6],jono2[6]; ... strcpy(jono2,"Koira"); strcpy(jono1,"Kissa on!"); ... printf("%s %s\n",jono1,jono2); /* - > Kissa on! on! */ +-----jono2 jono1 v | 0 1 2 3 4 5 0 1 2 3 4 5 | +-----------------------------------+ +--->|4B|69|73|73|61|20|6F|6E|21|00|61|00| +-----------------------------------+ K i s s a o n ! NUL a NUL
Edellä jono2:n pilaaminen voitaisiin estää kutsulla strncpy:
char jono1[6],jono2[6]; ... strncpy(jono2,"Koira",6); strncpy(jono1,"Kissa on!",6); ... printf("%s %s\n",jono1,jono2); /* - > Kissa Koira Koira */ +-----jono2 jono1 v | 0 1 2 3 4 5 0 1 2 3 4 5 | +-----------------------------------+ +--->|4B|69|73|73|61|20|6B|6F|69|72|61|00| +-----------------------------------+ K i s s a K o i r a NUL
Vikana on kuitenkin edelleen se, että nyt strncpy ei laita NUL merkkiä jonon loppuun, mikäli käsittely lopetetaan maksimipituuden takia!
Usein tämä varmistetaan laittamalla NUL-merkki varmuuden vuoksi kopioinnin jälkeen:
... strncpy(jono1,"Kissa on!",6); jono1[6- 1] = 0; ... +-----jono2 jono1 v | 0 1 2 3 4 5 0 1 2 3 4 5 | +-----------------------------------+ +--->|4B|69|73|73|61|00|6B|6F|69|72|61|00| +-----------------------------------+ K i s s a NULK o i r a NUL