[Tech] Ancora non va :(
Franco Bagnoli
bagnoli@dma.unifi.it
Mer 9 Giu 2004 15:06:45 CEST
On Wed, 9 Jun 2004, Valerio Montagnani wrote:
> On Wed, 09 Jun 2004 12:49:02 +0200
> Simone Piccardi <piccardi@firenze.linux.it> wrote:
>
> A dimostrazione di ciņ che dico vi mando questo codice. I risultati sono
> analoghi, come potete vedere compilandolo.
ma compila? io direi di no, solo a guardarlo.
mi sta sfuggendo che cosa vuoi fare (ho gettato i vecchi messaggi senza
leggerli). Una matrice a 3 indici? l'ultimo indice č variabile? altrimenti
puoi mettere tutto in un unico vettore.
Comunque:
> float *alloca_mem_3(int sizeX, int sizeY)
> {
> float **;
> int j;
> m=(float **)malloc(sizeX*sizeof(float*));
> for (j=0; j<sizeX; j++) {
> m[j]=(float *)malloc(sizeY+sizeof(float));
> }
> return *m;
> }
questo alloca alloca un vettore di vettori di float. quindi dovrebbe
essere
float ** matrice;
int i,j;
float ** alloca_mem_3(int sizeX, int sizeY)
{
float **m;
int j; /* occhio che questa dichiarazione maschera il j globale */
m=(float **)malloc(sizeX*sizeof(float*));
for (j=0; j<sizeX; j++) {
m[j]=(float *)malloc(sizeY+sizeof(float));
}
return m;
}
main( int argc, char argv[]) {
matrice=alloca_mem_3(3,3);
// Stampa dei risultati usando la mia funzione
for(i=0;i<3;i++){
for(j=0;j<3;j++){
matrice[i][j]=i*j;
printf("matrice[%d][%d]=%f\n",i,j,matrice[i][j]);
}
}
}
------------------------------------------
Se invece volevi allocare un solo vettore e vederlo come
una matrice
float * matrice;
int i,j;
float * alloca_mem_3(int sizeX, int sizeY)
{
float *m;
int j; /* occhio che questa dichiarazione maschera il j globale */
m=(float *)malloc(sizeX*sizey*sizeof(float));
return m;
}
main( int argc, char argv[]) {
matrice=alloca_mem_3(3,3);
// Stampa dei risultati usando la mia funzione
for(i=0;i<3;i++){
for(j=0;j<3;j++){
matrice[i*3+j]=i*j;
printf("matrice[%d][%d]=%f\n",i,j,matrice[i*3+j]);
}
}
}
--
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>
virtual location: Dipartimento di Energetica "S. Stecco"
ultra-virtual affiliation: Centro Dinamiche Complesse (CSDC-Firenze)
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
Maggiori informazioni sulla lista
flug-tech