- Codice:
int *F1(int A, int *B){
int i;
int *C = (int *)malloc((A)*sizeof(int));
int k = F2(B, A);
for (i = 0; i < A; i++)
if (!(i % 2))
printf("\n C[%d]=%d", i, C[i] = k + (*B)++);
else
printf("\n C[%d]=%d", i, C[i] = k - *(B++));
return C;
}
int F2(int *A, int B){
int i;
for (i = 0; i < B; i++)
if ((A[i]>B))
A[i]++;
return ++(A[--i]);
}
main(){
int *VD = NULL;
int VS[4] = { 2, 3, 4, 1 };
VD = F1(*VS, VS + 2);
printf("\n A: %d B: %d", *VS, VD[*VS % 2]);
}
In questo codice prima di eseguire la seguente istruzione :
- Codice:
printf("\n C[%d]=%d", i, C[i] = k - *(B++));
ho i seguenti valori :
*B=6
k=2
C[0]=7
A=2
Ora perchè eseguendo questa istruzione B diventa 2 ?