Salve, ho scritto questo codice:
#include <stdio.h>
#include<stdlib.h>
codice:
int main(void) {
int righe, colonne, i, j;
//printf(" righe");
scanf("%d", &righe);
//printf("\n");
//printf("colonne");
scanf("%d", &colonne);
//printf("\n");
int **matrice;
matrice = (int**)malloc((righe * sizeof(int*)));
for (i = 0; i < righe; i++) {
matrice[i] = (int*) malloc(colonne * sizeof(double));
}
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf("inserisci elemento riga %d e colonna %d",i,j);
scanf("%d",&matrice[i][j]);
printf("\n");
}
}
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf("matrice[%d][%d]= %d ",i,j,matrice[i][j]);
}
printf("\n");
}
return 0;
}
per l'allocazione dinamica di una matrice, però (e non riesco a capire il motivo) va il loop.
Se lo eseguo dal terminale di Ubuntu, non esce fuori nessuna stampa, e se provo a chiudere il terminale esce l'avviso: "processo in esecuzione", se invece lo provo su windows, con IDE eclipse, non visualizza nessuna stampa, ma se inserisco gli interi righe e colonne, e premo stop, a quanto pare alloca la matrice perchè questo è il risultato che ottengo:
inserisci elemento riga 0 e colonna 0
inserisci elemento riga 0 e colonna 1
inserisci elemento riga 0 e colonna 2
inserisci elemento riga 1 e colonna 0
inserisci elemento riga 1 e colonna 1
inserisci elemento riga 1 e colonna 2
inserisci elemento riga 2 e colonna 0
inserisci elemento riga 2 e colonna 1
inserisci elemento riga 2 e colonna 2
matrice[0][0]= 11014128 matrice[0][1]= 11010244 matrice[0][2]= 67108868
matrice[1][0]= 11014680 matrice[1][1]= 11015656 matrice[1][2]= 1548765276
matrice[2][0]= 11014680 matrice[2][1]= 11015656 matrice[2][2]= 1936421487
Non riesco a capire!
