Quindi è risaputo che C non ha limiti di array durante l'accesso alla memoria. Al giorno d'oggi, se chiami myArray[7]
quando lo hai inizializzato come int myArray[3]
, il tuo programma otterrà un segfault e un arresto anomalo grazie alla memoria protetta.
Ora, se hai un argomento in una funzione come myFunc(int *yourArray)
, ma sai che hai bisogno di almeno 8 slot nell'array, è possibile controllare se myArray[7]
è illegale in anticipo per lanciare una custom errore:
"Sorry, yourArray is too small for this function. We need 8 ints of space."
anziché
"Segmentation fault."