Sembra che tu pensi al tipo di bufferoverflow che di solito accade sull'heap. In genere, i blocchi di memoria allocati vengono memorizzati come elementi, con i metadati, che includono i puntatori all'elemento successivo e precedente, in elenchi doppiamente collegati. In teoria, traboccando il buffer si sarebbe in grado di sovrascrivere i metadati del prossimo chunk di memoria e se quello è liberato si potrebbe essere in grado di sovrascrivere un puntatore a funzione, che porta all'esecuzione di codice arbitrario. Per maggiori informazioni sullo sfruttamento vedi questo sito web
Gli indicatori di grasso potrebbero proteggerti da questo: controllando semplicemente ogni operazione sull'array come leggere o scrivere nella posizione, internamente viene controllato un controllo dei limiti, se l'offset / indice dato è valido, e se e solo se viene superato il controllo dei limiti, l'operazione verrà eseguita. (Come già detto @cloudfeet.) Ciò significa che non sarai in grado di scrivere dopo i limiti della tua memoria e quindi non potrai sovrascrivere cose come i metadati del prossimo pezzo di memoria o un puntatore in pila.