Funzione variadica
# Funzione variadica

Nella programmazione, una funzione variadica è una funzione di arietà variabile, ossia una funzione che può accettare un numero variabile di argomenti. La possibilità di implementare le funzioni variadiche e il supporto per le stesse differisce tra i diversi linguaggi di programmazione.

## Esempi di funzioni variadiche

Ci sono molte operazioni logiche e matematiche che sono definite come funzioni variadiche. Per esempio, la somma di numeri o la concatenazione di stringhe o altre sequenze sono operazioni che possono essere applicate a un numero qualunque di parametri.

Un'altra operazione che è stata implementata come funzione variadica in molti linguaggi è la stampa di contenuti in output, tipicamente la scrittura a schermo di testo o numeri. La funzione printf del linguaggio C e la funzione format del linguaggio Common Lisp sono due esempi di questo tipo: entrambe accettano un argomento che specifica la formattazione dell'output e un numero variabile di argomenti che forniscono i valori da formattare e stampare.

## Problematiche di sicurezza

Le funzioni variadiche possono avere dei problemi di sicurezza di tipo. Per esempio la funzione printf (linguaggio C), se usata incautamente, può dare adito a una serie di problemi di sicurezza conosciuti come format string attack. Gli attacchi sono possibili perché permette che la funzione tenti di estrarre dallo stack (pop) più argomenti di quelli permessi, corrompendo lo stack e portando a comportamenti inattesi.

