[C con Clase] Ayuda urgente xD XD

Temo scrippting_the_world en yahoo.com
Jue Nov 22 18:29:00 CET 2007



----- Original Message ----
From: Temo <scrippting_the_world en yahoo.com>
To: c-con-clase en smartgroups.com
Cc: dev-cpp-bugs en lists.sourceforge.net
Sent: Thursday, November 22, 2007 6:27:45 PM
Subject: Ayuda urgente xD XD


hola como estan, tiene tiempo que no mandaba una consulta, aunque si he estado activo, bueno la cosa es la siguiente
tengo que asignar un bloque de memoria para hacer un mapeo generando datos aleatorios y les pongo el codio acontinuacion
 la cosa es que cuando se llena el pedazo de memoria asigando, se traba en tiempo de ejecucion, me gustaria saber que e slo que puedo hacer, para saber cuando ya esta llena la memoria, osea teoricamente si lo c, pero como lehago para decir bueno esta llena entonces limpiamos tal casilla que es la menos usada frecuentemente, 
#include <stdlib.h>
#include <stdio.h>

#define total 16
#define n 4


char *memoria, *ptr;
char matriz[total][total];
int inf = (1<<29);

void mapaBits(char
 cad[]);
void imprMatriz();
void mete(int x);
int min_renglon();


int main(void)
{
  
    char bitmap[n][n];
    int celda;
     
    int i;
    srand(time(NULL));
    memoria = (char*)calloc(total, sizeof(char));
    
    printf("\n Dir en donde empieza : %p\n",memoria);
    
    //for(i = 0; i <= total; i++)
     while(1)  {
           celda = rand()%total;
           if(memoria[celda]){i--; continue;}
           //printf("\n%d", i);
           printf( "\nse escribio en la pagina %d un %d ", celda,
 memoria[celda] = rand() % 2);
            if(memoria[celda] == 1) mete(celda);          
            mapaBits("\nEl mapa de Bits es:");
          printf("\nse debe eliminar: %d",min_renglon());
           ptr = &memoria[i];
           printf("\n");
           imprMatriz();
           getchar();
          }
    printf("\n Dir en donde termina : %p\n",ptr);
    mapaBits("\nEl mapa de Bits es:");
    free(memoria);
   
 printf("\nlibere la memoria\n");
    imprMatriz();
    getchar();
    return 0;
}


void mapaBits(char cad[]) {
int i;
 printf("%s\n", cad);

  for(i = 0; i<total; i++){
   if(i != 0 && i%n == 0) printf("\n");
   printf("%d", memoria[i]);
  }
  printf("\n");
}

void imprMatriz(){
int fila, col;
   for(fila = 0; fila < total; fila++){
    for(col = 0; col < total; col++)
     printf("%d", matriz[fila][col]);
    printf("\n");
   }
}

void mete(int x){
int i;
   for(i = 0; i<total; i++)
    matriz[x][i] = 1;

   for(i = 0; i<total; i++)
    matriz[i][x] = 0;    
}

int min_renglon(){
int i, j, s, p, min =
 inf, r;

  for(i = 0; i<total; i++){
  s = 0;
    for(p = 1, s = 0, j = total-1; j>=0; j--, p*=2)
     s += (matriz[i][j]*p);
//   printf("min %d, ren %d = %d\n",min, i, s); 
     if(s < min) { min = s; r = i; }
  }
return r;
}




      Be a better sports nut! Let your teams follow you 
with Yahoo Mobile. Try it now.





      ____________________________________________________________________________________
Get easy, one-click access to your favorites. 
Make Yahoo! your homepage.
http://www.yahoo.com/r/hs 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071122/4d566d6a/attachment.html>


Más información sobre la lista de distribución Cconclase