PDA

View Full Version : [C] - Informazioni comando MALLOC


marco83pt
04-12-2008, 15:50
Ciao a tutti, Vi espongo brevemente il mio dubbio.
Ho implementato un programma in che effettua l'inversione di una matrice tramite il metodo Gauss-Jordan. Poiché la dimensione delle matrice dove mi appoggio per lavoro è variabile ho usato il seguente comando (per esempio per la matrice A):

long double **A;

e poi:

A = (long double **) malloc (n * sizeof(long double *));
for(i = 0;i < n; ++i)
A[ i ] = (long double *) malloc (n * sizeof(long double));

Ottengo dei problemi in fase di esecuzione quando la dimensione delle matrici in ingresso supera i 500. Mi chiedevo come faccio a far allocare tali matrici in altri spazi di memoria così da poter gestire matrici di dimensione anche maggiore.

Grazie ancora. Saluti, Marco.

cionci
04-12-2008, 18:44
Un conterraneo :D

L'allocazione è corretta, un matrice da 500 x 500 x 10 byte dovrebbe essere contenuta senza problemi nello heap. Dopo tutto sono solo 2,4 MByte.
Il problema deve essere altrove.

marco83pt
04-12-2008, 23:29
Trovato e risolto....
adesso fa il suo dovere (mi deve lavorare con roba di 1000x1000), solo che adesso è venuto fuori un altro problema...ma è tardi lo guarderò domani.
Comunque grazie per la risposta.Marco.

Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.