data la casualità
La calloc azzera gli elementi del vettore. E' la malloc (che avevi usato prima) che non inizializza i valori lasciandoli casuali.
cosa che dovrebbe accadere alla prima
Facci capire ... posto che tutti i valori siano a zero inizialmente, secondo te quale dovrebbe essere il risultato usando questa linea
(*(pos+c*i+j))=(*(pos+c*i+(j-1)))++risultato usando questa linea.
E infine, nelle ultime due for utilizzi i e aumenti j e poi utilizzi j e aumenti i ...