ciao fastcoder,
innanzitutto grazie!
in effetti la fabbrica di memoria c'è e mi serve pure! E' che si tratta di lavorare con dei cromosomi (dunque lunghezze dell'ordine di 140 milioni di elementi e più...).
tuttavia ho risolto inserendo una fncina mem,un controllo sull'allocazione (evidentemente nn gli piaceva, senza) e un free() piazzato al punto giusto (prima di rifare il ciclo for). ora funzia:
se può esserti/esservi d'aiuto, ecco il codice:
i=0;
while(i < 26)
{
i++; int mem=0;
count=0;
CoC_tot=0;
CoS_tot=0;
Com_tot=0;
mem=Cl[i]*sizeof(char);
printf("Trying to alloc %ld bytes...\n",mem);
if((x_1=(char *)malloc(mem))==NULL){printf("Error allocating memory\n");exit(0);}
printf("alloc() ok.\n");
printf("ecco che inizio a caricare... %d\n",x_1);
for (k=0; k <= Cl[i]; k++) {
x_1[k]='_';
}
for(;{
if (fgets(b,200,fp4)==NULL){break;}
sscanf(b,"%d %d %d %d %d %f %f %f %d %d\n",
&C, &Start, &End, &Len, &Span, &cos, &com, &coc, &in1, &in2);
printf("\t\tC %d e i %d:\n",C,i);
if (C==i) {
count++;
printf("\t\tC %d e i %d e count:%d\n",C,i,count);
printf ("\tstart + end: %d %d \n",Start,End);
for (l=Start; l <= End; l++) {
x_1[l]='*';
ecc eccc.....
grazie ancora e a presto!
dan