Buenas amigos, estoy intentando barajar las filas de un array multidimensional y no soy capaz de dar con el modo. Ahora mismo lo tengo asi:
Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void RandomSuffle(int **lista, int nElements){
//en un for voy recorriendo todos y calculo con rand la nueva posición y lo intercambio.
int x, y, pos, *aux;
for(y=0;y<nElements;y++){
pos=rand()%nElements;
if(pos != y){
aux=lista[pos];
lista[pos]=lista[y];
lista[y]=aux;
}
}
}
int main()
{
int z, x, i=0, deltas[8][2];
srand(time(0));
for (z = -1; z <= 1; z++){
for(x = -1; x <= 1; x++){
if(x == 0 && z == 0){
}else{
deltas[i][0]=z;
deltas[i][1]=x;
i++;
}
}
}
for (i = 0; i < 8; i++){
printf("%2i,",deltas[i][0]);
printf("%2i\n",deltas[i][1]);
}
RandomSuffle(deltas, 8);
printf("\n");
for (i = 0; i < 8; i++){
printf("%2i,",deltas[i][0]);
printf("%2i\n",deltas[i][1]);
}
getchar();
return 0;
}
lo que pretendo barajar son los punteros de las filas, o sea, si deltas[0][0]={-1,-1} y la direccion de la fila es 0x12ff00 y deltas[1][0]={1,0} y su direccion es 12ee00 (por decir una), Se suponge que si intercambio esos punteros cambio el orden de la lista sin necesidad de saber cuantas columnas tiene la fila ¿no?
Estoy muy perdido en esto ¿alguien puede ayudarme?