28/09/10 18:27
crash outside control
Ciao a tutti, qualche giorno fa ho cominciato a vedere come dichiarare una matrice dinamica. Visto che sul libro non c'è ho cercato con google.
Dopo svariati risultati sono giunto a scrivere questo codice:
Solo che quando visualizza i valori letti, restituisce valori errati.
Potete aiutarmi a capire qual'è il problema?
Vi sarei grato anche se mi illustraste procedimenti migliori.
Grazie mille a tutti comunque
Dopo svariati risultati sono giunto a scrivere questo codice:
#include <stdio.h> #include <stdlib.h> #include <malloc.h> void creaM(int ***M, int n, int m); void inserisci(int **M, int *n, int *m); void visualizza(int **M, int n, int m); int main(int argc, char *argv[]) { int **M, n, m; inserisci(M, &n, &m); visualizza(M, n, m); free(M); system("PAUSE"); return 0; } void inserisci(int **M, int *n, int *m) { int i, j; do { printf("Inserisci il numero di righe\n"); scanf("%d", n); } while(*n<0); do { printf("Inserisci il numero di colonne\n"); scanf("%d", m); } while(*m<0); creaM(&M, *n, *m); for (i=0; i<*n; i++) { for (j=0; j<*m; j++) { printf("Inserisci l'elemento di posizione %d, %d\n", i, j); scanf("%d", &M[i][j]); } } } void visualizza(int **M, int n, int m) { int i, j; for (i=0; i<n; i++) { for (j=0; j<m; j++) { printf("%d\t", &M[i][j]); } printf("\n"); } } void creaM(int ***M, int n, int m) { int i; *M = (int **)malloc(sizeof(int *)*n); //Alloco n vettori per quante sono le righe /* Alloco gli elementi di ogni vettore per formare le colonne */ for (i=0; i<n; i++) { *(*M+i) = (int *)malloc(sizeof(int)*m); //Alloco m colonne } }
Solo che quando visualizza i valori letti, restituisce valori errati.
Potete aiutarmi a capire qual'è il problema?
Vi sarei grato anche se mi illustraste procedimenti migliori.
Grazie mille a tutti comunque
Ultima modifica effettuata da crash outside control 28/09/10 18:30
aaa