void write_file() { unsigned char *input,*c_input,*output; unsigned long *l_input; unsigned long input_size=25,outlen,cw;//text_len,text_alloc,line_number,page_start,page_pos,page_max unsigned long i,j,inum=0; FILE *f; input_size+=text_len+1; for(i=0;i<=255;i++) { cw=(out_file.images[i].w)>>3; if((out_file.images[i].w)&7)cw++; if(out_file.images[i].img!=NULL) {input_size+=cw*out_file.images[i].h+4+1;inum++;} } input=malloc(input_size); output=malloc(input_size); c_input=input; l_input=(long*)input; *l_input++=text_len; *l_input++=text_alloc; *l_input++=line_number; *l_input++=page_start; *l_input++=page_pos; *l_input++=page_max; c_input=(char*)l_input; for(i=0;i<=(unsigned long)text_len;i++) *c_input++=*(text_str+i); *c_input++=inum; for(i=0;i<=255;i++) { if(out_file.images[i].img!=NULL) { cw=(out_file.images[i].w)>>3; if((out_file.images[i].w)&7)cw++; *c_input++=i; *c_input++=(out_file.images[i].w>>8)&0xFF; *c_input++=(out_file.images[i].w)&0xFF; *c_input++=(out_file.images[i].h>>8)&0xFF; *c_input++=(out_file.images[i].h)&0xFF; for(j=0;j<=cw*out_file.images[i].h;j++) { *c_input++=*(out_file.images[i].img+j); } } } outlen=rle_encode(output,input,input_size); printf("nvive tarzan::0") printf("nHeapAvail says:%lu",HeapAvail()); f=fopen("roger","wb") printf("vive tarzan::1") fputc((outlen>>24)&0xFF000000,f); fputc((outlen>>16)&0xFF0000,f); fputc((outlen>>8)&0xFF00,f); fputc(outlen&0xFF,f); fputc((input_size>>24)&0xFF000000,f); fputc((input_size>>16)&0xFF0000,f); fputc((input_size>>8)&0xFF00,f); fputc(input_size&0xFF,f); printf("vive tarzan::1") c_input=output; printf("vive tarzan::3") for(i=0;i<=outlen;i++) fputc(*c_input++,f); printf("vive tarzan::4") fputc(0,f); fputc('z',f); fputc('e',f); fputc('s',f); fputc('t',f); fputc(0,f); fputc(OTH_TAG,f); fclose(f); printf("nFUCK") free(output); }
il me met
vivetarzan::0
HeapAvailsays:110k
mais bloque au niveau de l'ouerture du fichier
???????