<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Temo <scrippting_the_world@yahoo.com><br>To: c-con-clase@smartgroups.com<br>Cc: dev-cpp-bugs@lists.sourceforge.net<br>Sent: Thursday, November 22, 2007 6:27:45 PM<br>Subject: Ayuda urgente xD XD<br><br>
<div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div>hola como estan, tiene tiempo que no mandaba una consulta, aunque si he estado activo, bueno la cosa es la siguiente<br>tengo que asignar un bloque de memoria para hacer un mapeo generando datos aleatorios y les pongo el codio acontinuacion<br> 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, <br>#include <stdlib.h><br>#include <stdio.h><br><br>#define total 16<br>#define n 4<br><br><br>char *memoria, *ptr;<br>char matriz[total][total];<br>int inf = (1<<29);<br><br>void mapaBits(char
 cad[]);<br>void imprMatriz();<br>void mete(int x);<br>int min_renglon();<br><br><br>int main(void)<br>{<br>  <br>    char bitmap[n][n];<br>    int celda;<br>     <br>    int i;<br>    srand(time(NULL));<br>    memoria = (char*)calloc(total, sizeof(char));<br>    <br>    printf("\n Dir en donde empieza : %p\n",memoria);<br>    <br>    //for(i = 0; i <= total; i++)<br>     while(1)  {<br>           celda = rand()%total;<br>           if(memoria[celda]){i--; continue;}<br>           //printf("\n%d", i);<br>           printf( "\nse escribio en la pagina %d un %d ", celda,
 memoria[celda] = rand() % 2);<br>            if(memoria[celda] == 1) mete(celda);          <br>            mapaBits("\nEl mapa de Bits es:");<br>          printf("\nse debe eliminar: %d",min_renglon());<br>           ptr = &memoria[i];<br>           printf("\n");<br>           imprMatriz();<br>           getchar();<br>          }<br>    printf("\n Dir en donde termina : %p\n",ptr);<br>    mapaBits("\nEl mapa de Bits es:");<br>    free(memoria);<br>   
 printf("\nlibere la memoria\n");<br>    imprMatriz();<br>    getchar();<br>    return 0;<br>}<br><br><br>void mapaBits(char cad[]) {<br>int i;<br> printf("%s\n", cad);<br><br>  for(i = 0; i<total; i++){<br>   if(i != 0 && i%n == 0) printf("\n");<br>   printf("%d", memoria[i]);<br>  }<br>  printf("\n");<br>}<br><br>void imprMatriz(){<br>int fila, col;<br>   for(fila = 0; fila < total; fila++){<br>    for(col = 0; col < total; col++)<br>     printf("%d", matriz[fila][col]);<br>    printf("\n");<br>   }<br>}<br><br>void mete(int x){<br>int i;<br>   for(i = 0; i<total; i++)<br>    matriz[x][i] = 1;<br><br>   for(i = 0; i<total; i++)<br>    matriz[i][x] = 0;    <br>}<br><br>int min_renglon(){<br>int i, j, s, p, min =
 inf, r;<br><br>  for(i = 0; i<total; i++){<br>  s = 0;<br>    for(p = 1, s = 0, j = total-1; j>=0; j--, p*=2)<br>     s += (matriz[i][j]*p);<br>//   printf("min %d, ren %d = %d\n",min, i, s); <br>     if(s < min) { min = s; r = i; }<br>  }<br>return r;<br>}<br></div></div><br>
      <hr size="1">Be a better sports nut! Let your teams follow you 
with Yahoo Mobile. <a rel="nofollow" target="_blank" href="http://us.rd.yahoo.com/evt=51731/*http://mobile.yahoo.com/sports;_ylt=At9_qDKvtAbMuh1G1SQtBI7ntAcJ">Try it now.</a></div><br></div></div><br>



      <hr size=1>Never miss a thing.  <a href="http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs"> Make Yahoo your homepage.</a>

</body></html>