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 ...