Gracias por la corrección, además me ha servido para darme cuenta de que el error esta en otra parte del código ( o eso creo ), posteare el código entero a ver si me pueden ayudar.
Código:
int main(){
int i;
int baraja[52];
//Inicializo los arrays
for (i=0; i<52; i++)baraja[i]=i;
pinta_array(baraja);
desordena_baraja(baraja);
printf("Baraja de cartas desordenada: \n");
pinta_array(baraja);
//pinta_cartas(baraja);
getchar();
return 0;
}
void desordena_baraja(int *puntero){
int i,temp,random,random2;
srand(time(NULL));
//Se desordena el array
for (i=0; i<200; i++){
random=rand() % 52;
random2=rand() % 52;
temp = puntero[random];
puntero[random] = puntero[random2];
puntero[random2] = temp;
}
}
Las funciones pinta_array() Muestra los valores de un array
y pinta_cartas() no son importantes ya que solo muestran caracteres en pantalla.
El programa devuelve ( valores antes de desordenar ):
0-1-2-3-4...51-4201408
El problema deberia estar aqui ya que esta linea asigna los valores iniciales al array:
Código:
for (i=0; i<52; i++)baraja[i]=i;
me pregunto de donde saldrá ese 4201408