Ricorsione in C

di il
7 risposte

Ricorsione in C

Salve,
ho un problema con le funzioni ricorsive.
Dovrei, nel caso base della ricorsione, salvare un vettore (che cambia nella funzione ricorsiva) in una riga di una matrice. Avevo pensato di dichiarare in modo globale un contatore che mi indichi la riga corrente su cui salvare e quindi di fare la memorizzazione nel caso base della ricorsione e poi incrementare il contatore.
Così facendo però ricevo in fase di compilazione un sacco di errori del tipo " relocation truncated to fit..".
Quale potrebbe essre il problema?
Grazie.

7 Risposte

  • Re: Ricorsione in C

    "relocation truncated to fit" dovrebbe avere a che fare con la dimensione delle aree dati/codice all'interno del tuo eseguibile: non è che hai definito staticamente una matrice estremamente grande?
  • Re: Ricorsione in C

    Si, l'ho fatto, potrebbe essere quello il problema.
    Grazie.
  • Re: Ricorsione in C

    Beh, sì ... quanto grande?
  • Re: Ricorsione in C

    Ho messo come numero di righe della matrice un numero esagerato (2 miliardi) perchè non so a priori quanti saranno i vettori che dovrò memorizzare.
  • Re: Ricorsione in C

    Beh, è ovvio che non puoi ... se fossero interi a 4 byte l'array (e quindi il file eseguibile) occuperebbe da solo 8 GB !!

    Non credo tu abbia studiato "l'allocazione dinamica" degli array altrimenti non avresti fatto questo errore. Quando non sai quanto grande può essere l'array utilizzi funzioni apposite (come malloc) per gestire la memoria a runtime.
  • Re: Ricorsione in C

    Si non so cosa sia l'allocazione dinamica, la studierò, grazie.
  • Re: Ricorsione in C

    Di nulla
Devi accedere o registrarti per scrivere nel forum
7 risposte