|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6224
|
[C] Allocazione dinamica
Ciao,
ho un dubbio sull'allocazione dinamica. Dunque se io alloco una matrice statica, e poi una matrice dinamica, le due matrici sono mappate in memoria esattamente allo stesso modo? O quella dinamica ha un'allocazione differente? Ve lo chiedo perché, in una chiamata MPI_Send, se scrivo: Codice:
MPI_Send(mat, 100*100, MPI_INT, 1, 0, MPI_COMM_WORLD); Quindi in poche parole il mio dubbio è il seguente: se la matrice è allocata dinamicamente, le righe in memoria non sono consecutive. Ma se è allocata staticamente, lo sono? Ultima modifica di Unrue : 23-04-2008 alle 16:08. |
|
|
|
|
|
#2 |
|
Registered User
Iscritto dal: Jul 2004
Città: Roma
Messaggi: 67
|
adesso non ricordo tanto bene visto ke è da un pò ke non programmo
|
|
|
|
|
|
#3 | ||
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6224
|
Quote:
Quote:
Codice:
int matrice[100][100] Ultima modifica di Unrue : 23-04-2008 alle 17:01. |
||
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6224
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Registered User
Iscritto dal: Jul 2004
Città: Roma
Messaggi: 67
|
ritornando cmq al tuo dubbio penso ke nel caso di allocazione statica la matrice non sia allocata consecutivamente in memoria mentre x la dinamica si, cmq puoi fare un pò di prove dichiarando la matrice prima in un modo e poi nell'altro e fare una lettura all'interno della matrice facendoti restituire l'indirizzo di memoria
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Indifferentemente da se dichiari "int array[10];" o "int array[10][10];" array è comunque un puntatore a intero...
Allocando staticamente sei ovviamente sicuro in entrambi i casi che tutti gli elementi della matrice/vettori sono in spazi attigui... Allocando dinamicamente invece dipende dalla "munnezza" che hai nell'area heap... quindi non puoi dire con certezza se sarà tutto allocato in zone attigue... è facile che non sia così... in ogni caso, fai conto che anche allocando dinamicamente puoi creare una bella matrice a partire da un puntatore a intero, non c'è bisogno di scomodare puntatori a puntatori a ...
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 481
|
Quote:
Ecco perchè va inviato un blocco di memoria allocato staticamente. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6224
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6224
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:19.




















