Oppure

Loading
24/07/08 7:44
Misciu87
comunque ho visto che va bene anche mettere res=loadlist("0";);

ora dovrebbe mancare solo quel problema che se metto *num2 mi prende solo l'ultima cifra del numero..
aaa
24/07/08 10:43
lorenzo
Postato originariamente da Misciu87:

while res[i]!=0
{
res[i] =0;
i++;
}

va bene cosi?


io avrei cambiato la condizione in:

while( i < n )
res[ i++ ] = 0;

ma se funziona...:-|
aaa
24/07/08 10:51
lorenzo
per l'ultimo problema mettimi giù del codice...almeno provaci. Ma non chiedermi niente fino a quando non ci hai pensato qualche ora.
Se alla fine sei disperata allora posta pure.

Questa sera vediamo di risolvere il problema...
aaa
24/07/08 11:03
Misciu87
ok ci sentiamo sulle 17.15 ok?perche poi alle 18 io vado al lavoro..
aaa
24/07/08 12:02
lorenzo
sono al lavoro fino alle 6.
Tu metti giù qualcosa poi vediamo di ragionarci...
aaa
24/07/08 12:41
Misciu87
io avevo capito che dovevo fare un a funzione diciamo l'inverso di quello che fa loadlist.. cioè in loadlist il numero lo mette in un vettore, e io devo fare una funzione in modo che da vettore torni intero

forse però ho capito male..
aaa
24/07/08 13:54
Misciu87
ecco come l'ho modificato

int *mult(int *num1, int *num2,const char *argv[])
{
   int n = getlength2( num1 ) + getlength2( num2 ); 
   int *res=(int *)malloc((n)*sizeof(int)); 

  
   int i = 0;
   res=loadlist("0");
   *num2 = atoi(argv[2]);
    for(i = 0; i < *num2; i++) 
   {
      res = add(res, num1);
   }
   return res;
}

ora funziona però fino a numeri con 8 cifre, poi mi dice segmentation fault, da cosa è dovuto? può dipendere dal mio computer che è vecchio crollo oppure è sempre un problema di memoria?
aaa
24/07/08 18:05
Misciu87
ci sei per aiutarmi lorenzo?
l'errore ora è in loadlist:In quest funzione allocate una lista di interi di lunghezza
uguale alla lunghezza di list. Quando la funzione termina
il puntatore res che prima puntava ad una lista lunga n+m ora punta
ad una lista lunga quanto list.

int *loadlist(char *list) 
{
	int n=getlength(list),i;
	int *num=(int *)malloc((n+1)*sizeof(int));
	char tmp;

	for(i=0; i<n; i++) {
		tmp=list[i];
		num[n-1-i]=atoi(&tmp);
	}
	num[n]=-1;
	return num;
}

aaa