mame83
01-06-2011, 16:57
Ciao a tutti ho il seguente problema: una volta creato un vettore dinamico in una funzione non riesco a stamparlo nel main mentre nella funzione stessa si.
void copia(int matrice[max][max],int dim, int *vm)
{
int i,j,k;
vm=(int*)malloc(sizeof(int)*dim*dim);
k=0;
for(i=0; i<dim; i++)
for(j=0; j<dim; j++)
{
vm[k]=matrice[i][j];
k=k+1;
}
/*printf("vettore uguale a : \n");
for (i=0; i<dim*dim; i++)
printf("%d ",vm[i]);
printf("\n");*/
}
int main()
{
int mat[max][max],*vet;
int n,i,maggiore;
copia(mat,n,vet);/*copiamo matrice nel vettore */
for (i=0; i<n*n; i++)
printf("%d ",vet[i]);
printf("\n");
system("PAUSE");
}
dove copia è una funzione in cui copio una matrice nXn in un vettore nxn.
il vettore lo dichiaro nel main come puntatore ad un intero e lo creo nella funzione con una malloc.
Il problema e che se lo faccio stampare nella funzione copia me lo stampa correttamente, invece se lo stampo come nell esempio nel main mi da valori sballati.
Spero mi aiutate grazie in anticipo.
void copia(int matrice[max][max],int dim, int *vm)
{
int i,j,k;
vm=(int*)malloc(sizeof(int)*dim*dim);
k=0;
for(i=0; i<dim; i++)
for(j=0; j<dim; j++)
{
vm[k]=matrice[i][j];
k=k+1;
}
/*printf("vettore uguale a : \n");
for (i=0; i<dim*dim; i++)
printf("%d ",vm[i]);
printf("\n");*/
}
int main()
{
int mat[max][max],*vet;
int n,i,maggiore;
copia(mat,n,vet);/*copiamo matrice nel vettore */
for (i=0; i<n*n; i++)
printf("%d ",vet[i]);
printf("\n");
system("PAUSE");
}
dove copia è una funzione in cui copio una matrice nXn in un vettore nxn.
il vettore lo dichiaro nel main come puntatore ad un intero e lo creo nella funzione con una malloc.
Il problema e che se lo faccio stampare nella funzione copia me lo stampa correttamente, invece se lo stampo come nell esempio nel main mi da valori sballati.
Spero mi aiutate grazie in anticipo.