Problema con función de array de 2 dimensiones

Iniciado por ZedGe, 26 Mayo 2012, 03:58 AM

0 Miembros y 1 Visitante están viendo este tema.

ZedGe

Tengo el siguiente código programo en Devc++ y es C


#include <stdio.h>
#include <stdlib.h>

int posicionarBloques(int **bloques, int largo) {//Función que ordena cada dato de la fila de mayor a menor

   int i = 1, aux=0, j=0;
   
   while(j < largo){    
   while (i < 3){
         if(aux > bloques[j][i]){
            i++;      
         }
         if(aux < bloques[j][i]){
                 bloques[j][0]=  bloques[j][i];
                 bloques[j][i] = aux;
                 aux=bloques[j][0];
                 i=1;    
         }    
   }
   j++;
   }
return **bloques;          
           
}

void lectura(){//Funcion que lee el TXT y lo pasa a un arreglo
   
  FILE *archivo = fopen("prueba.txt", "r");
  int medidas;
  int lectura;
  int largo;
  int bloques[30][3];
  int aux=0,aux2=0,i=0,j=0;

  if (!archivo)
     printf("\nNo Se Pudo Leer Correctamente El Archivo...");
  else{
       while(i<30){//Inicializo la matriz con 0
            while(j<3){              
                  bloques[i][j]=0;  
                  j++;          
            }
            j=0;
            i++;
       }
       while (fscanf(archivo, "%i", &lectura) == 1){ //Leo los datos y los guardo
              if (lectura > 0){
                  largo = lectura;
                  while(largo > aux){
                    while (aux2 < 3){  
                          fscanf(archivo, "%i", &medidas);
                          bloques[aux][aux2] = medidas;      
                          aux2++;  
                    }  
                    aux++;aux2=0;
                 }
             }
     }
  **bloques =  posicionarBloques(bloques, largo); //Posible error    
  fclose(archivo);
  getch();
  }
}
 
int main()
{
       lectura();
       return 0;
}






Tengo un txt con esta info

2
10 20 30
5 9 15
0



el 2 representa el largo del arreglo
las siguientes dos lineas son los datos
y el 0 es para advertir que terminan los datos

leo los datos y los guardo correctamente, pero al mandarlos a la funcion que los ordena se me cae, y creo que es por que estoy pasando mal la matriz.... como deberia pasar como parametro la matriz para trabajarla bien???

ZedGe

tenia que recibirlo como

int bloques[30][3] en la función posicionar