Salve, ho scritto questo codice:
#include <stdio.h>
#include<stdlib.h>
per l'allocazione dinamica di una matrice, però (e non riesco a capire il motivo) va il loop.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; }
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!![]()


Rispondi quotando