Ho problemi a capire come funziona questa equazione in c:
char *sum(char *a, int b) {
return &a[b];
}
printf("%d", sum(5, 4));
Capisco come funzionano gli array e capisco come fare riferimento e de-referenziare una variabile in una posizione di memoria, ma non capisco da dove arriva l'aggiunta per giocare qui.
Per me è logico che return &a[4]
, ad esempio, restituisca solo un percorso di memoria inesistente e de-referenziato e causi un errore.
Qualcuno può spiegarmi questo con una terminologia semplice?