devil_prince
26-05-2011, 15:48
ragazzi una mano per l'allocazione dinamica di una matrice
Questo è il testo dell'esercizio:
/*A partire da una matrice A(MxN), del tipo sotto indicato, alloca per righe
1)staticamente
2)dinamicamente
visualizzare gli eleminti per colonne*/
Ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#define M 4
#define N 6
void main ()
{
int i,j, matriceA[M][N]={{11,12,13,14,15,16},
{21,22,23,24,25,26},
{31,32,33,34,35,36},
{41,42,43,44,45,46}};
int *matriceB;
printf("Ecco la matrice allocata staticamente\n");
for(j=0;j<6;j++){
printf("%d ",matriceA[0][j]);
printf("%d ",matriceA[1][j]);
printf("%d ",matriceA[2][j]);
printf("%d\n",matriceA[3][j]);}
i=0; j=0;
matriceB=(int *)malloc(M*N*sizeof(int));
printf("Ecco la matrice allocata dinamicamente\n");
for(i=0;i<M;i++){
for(j=0;j<N;j++)
*(matriceB+i*N+j)=matriceA[i][j];
printf("%d ",*(matriceB+i*N+j));}
fflush(stdin); getchar();
}
il programma và, ma i valori che mi risultano stampati dalla allocazione dinamica sono tutti sballati...consigli??
Questo è il testo dell'esercizio:
/*A partire da una matrice A(MxN), del tipo sotto indicato, alloca per righe
1)staticamente
2)dinamicamente
visualizzare gli eleminti per colonne*/
Ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#define M 4
#define N 6
void main ()
{
int i,j, matriceA[M][N]={{11,12,13,14,15,16},
{21,22,23,24,25,26},
{31,32,33,34,35,36},
{41,42,43,44,45,46}};
int *matriceB;
printf("Ecco la matrice allocata staticamente\n");
for(j=0;j<6;j++){
printf("%d ",matriceA[0][j]);
printf("%d ",matriceA[1][j]);
printf("%d ",matriceA[2][j]);
printf("%d\n",matriceA[3][j]);}
i=0; j=0;
matriceB=(int *)malloc(M*N*sizeof(int));
printf("Ecco la matrice allocata dinamicamente\n");
for(i=0;i<M;i++){
for(j=0;j<N;j++)
*(matriceB+i*N+j)=matriceA[i][j];
printf("%d ",*(matriceB+i*N+j));}
fflush(stdin); getchar();
}
il programma và, ma i valori che mi risultano stampati dalla allocazione dinamica sono tutti sballati...consigli??