]> git.llucax.com Git - z.facultad/75.06/jacu.git/blobdiff - src/blocksorting/main.c
el _z estaba alocando mas memoria de la que necesitaba, pero creo que eso no producia...
[z.facultad/75.06/jacu.git] / src / blocksorting / main.c
index 704c570653a3a3a15482f28d98c51cecf3732746..91582a92ccd7c6607a99b64f1e4f14a14917c62c 100644 (file)
@@ -15,7 +15,7 @@ int main(int argc, char *argv[])
                fp = fopen(argv[1], "r");
                len = atoi(argv[2]);
        } else if (argc == 2) {
-               fp = stdin; /*fopen(argv[1], "r");*/
+               fp = stdin;
                len = atoi(argv[1]);
        } else {
                printf("no, no\n");
@@ -23,7 +23,7 @@ int main(int argc, char *argv[])
        }
 
        data = malloc(sizeof(char)*len);
-       salida = malloc(sizeof(char)*(len+1));
+       salida = malloc(sizeof(char)*(len+1+sizeof(unsigned long int)*2));
        orig = malloc(sizeof(char)*(len+1));
 
        salida[len] = '\0';
@@ -40,21 +40,25 @@ int main(int argc, char *argv[])
                        c = fgetc(fp);
                        total++;
                }
+               /* lleno data mano! */
+               srand(time(NULL));
+               {
+                       size_t jj;
+                       for(jj=0; jj<i;jj++)
+                               data[jj] = rand()%255;
+               }
                bs_solve(data, salida, bs, &k, i);
 
                /* XXX ACA SALIDA DEBERIA PASAR A LA SIGUIENTE ETAPA XXX */
                if (argc == 3) {
-                       printf("BS : %s -> %ld\n", salida, k);
-                       bs_restore(orig, salida, k, i);
-                       printf("Orig : %s\n", orig);
+                       bs_restore(orig, salida+sizeof(Uint32)*2, k, i);
                } else
-                       printf("(%s)\n", salida);
+                       fwrite(salida, 1, i, stdout);
        }
        fclose(fp);
        bs_destroy(bs);
 
-       printf("Total bytes : %ld\n", total);
-       free(data);
+       /*printf("Total bytes : %ld\n", total);*/
        free(salida);
        free(orig);
        return 0;