Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C] Moltiplicazione di interi di lunghezza arbitraria
Forum - C/C++ - [C] Moltiplicazione di interi di lunghezza arbitraria - Pagina 12

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 ] Precedente | Prossimo
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:43
Giovedì, 24/07/2008
Testo quotato

Postato originariamente da Misciu87:

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

va bene cosi?



io avrei cambiato la condizione in:

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

ma se funziona...:-|

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:51
Giovedì, 24/07/2008
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...

PM Quote
Avatar
Misciu87 (Normal User)
Pro


Messaggi: 68
Iscritto: 01/07/2008

Segnala al moderatore
Postato alle 13:03
Giovedì, 24/07/2008
ok ci sentiamo sulle 17.15 ok?perche poi alle 18 io vado al lavoro..

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 14:02
Giovedì, 24/07/2008
sono al lavoro fino alle 6.
Tu metti giù qualcosa poi vediamo di ragionarci...

PM Quote
Avatar
Misciu87 (Normal User)
Pro


Messaggi: 68
Iscritto: 01/07/2008

Segnala al moderatore
Postato alle 14:41
Giovedì, 24/07/2008
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..

PM Quote
Avatar
Misciu87 (Normal User)
Pro


Messaggi: 68
Iscritto: 01/07/2008

Segnala al moderatore
Postato alle 15:54
Giovedì, 24/07/2008
ecco come l'ho modificato

Codice sorgente - presumibilmente C++

  1. int *mult(int *num1, int *num2,const char *argv[])
  2. {
  3.    int n = getlength2( num1 ) + getlength2( num2 );
  4.    int *res=(int *)malloc((n)*sizeof(int));
  5.  
  6.  
  7.    int i = 0;
  8.    res=loadlist("0");
  9.    *num2 = atoi(argv[2]);
  10.     for(i = 0; i < *num2; i++)
  11.    {
  12.       res = add(res, num1);
  13.    }
  14.    return res;
  15. }


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?

PM Quote
Avatar
Misciu87 (Normal User)
Pro


Messaggi: 68
Iscritto: 01/07/2008

Segnala al moderatore
Postato alle 20:05
Giovedì, 24/07/2008
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.

Codice sorgente - presumibilmente C++

  1. int *loadlist(char *list)
  2. {
  3.         int n=getlength(list),i;
  4.         int *num=(int *)malloc((n+1)*sizeof(int));
  5.         char tmp;
  6.  
  7.         for(i=0; i<n; i++) {
  8.                 tmp=list[i];
  9.                 num[n-1-i]=atoi(&tmp);
  10.         }
  11.         num[n]=-1;
  12.         return num;
  13. }



PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 21:39
Giovedì, 24/07/2008
non ho capito quello che vuoi dire....:-|

PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 ] Precedente | Prossimo