Ti faccio l'esempio monodimensionale (il programma simula un certo tipo di moto in più dimensioni).
Questo è quello che viene fatto di norma:
codice:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
    int pos = 0;
    int i, seed;
    seed=time(0);
    for(i=0; i<10; i++){
        if(((double)lrand48()/RAND_MAX)<0.5) pos += 1;
        else pos -= 1;
        printf("%d %d\n", i, pos);
    }
}
Il problema sorge quando passo agli array (analogo per più dimensioni):
codice:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
    int pos[10] = {0};
    int i, seed;
    seed=time(0);
    for(i=1; i<10; i++){
        if(((double)lrand48()/RAND_MAX)<0.5) (*(pos+i)) = (*(pos+(i-1)))++;
        else (*(pos+i)) = (*(pos+(i-1)))--;
        printf("%d %d\n", i, pos[i]);
    }
}
Sono stato chiaro?