il secondo caso cioè quello in cui *(a+b) l ho preso da un altro codice, che in teoria non dovrebbe dare errore te lo copio al volo
codice:
#include <stdio.h>
void f(int a[], int *b){
int i = 0;
for (i = *b; i >= 0; i--)
if (*(a+i) > *b) *(a+i) = *(a+i) - *b;
else if (*(a+i) < *b) *(a+i) = *(a+i) + *b;
if (*b < *a) *b = *b + *a;
}
main() {
int e[3] = {1, 2, 3};
int v = 2;
f(e,&v);
printf("%d\n",v);
printf("%d %d %d\n", e[0], e[1], e[2]);
}
quindi *(a+*b) equivale ad a[(*b)], questo ora è chiaro.
invece in questo caso *(a+i) ??
grazie per la pazienza ^^