Rikka
24-09-2004, 00:18
Ciao....
ho fatto questo programmino che alloca una matrice dinamica ma quando vado a farlo girare, dopo alcuni passaggi mi da errore nella memoria!!!!
Da che dipende? Come lo risolvo?
Grazie!!!
#include <stdio.h>
#include <conio.c>
#include <stdlib.h>
void inserisci(int,int,int **);
void stampa(int,int,int **);
int main (void)
{
int **mat;
int i,j;
int rig, col;
gotoxy(25,8);
printf("ALLOCAZIONE DINAMICA MATRICE");
getch();
clrscr();
printf("I caratteri ammessi nelle matrici sono soltanto numeri.\n\n");
printf("Premere un tasto per continuare...\n\n");
getch();
clrscr();
gotoxy(25,2);
printf(" SCEGLI DIMENSIONI ");
gotoxy(18,5);
printf("inserisci il numero delle righe : ");
gotoxy(62,5);
scanf("%d/n",rig);
gotoxy(18,8);
printf("inserisci il numero delle colonne : ");
gotoxy(64,8);
scanf("%d/n",col);
gotoxy(65,8);
getch();
mat = (int**) malloc(rig*sizeof(int*));
for(i=0;i<rig;i++)
{
mat[i] = (int*) malloc(col*sizeof(int));
}
inserisci(rig,col,mat);
stampa(rig,col,mat);
system("PAUSE");
}
void inserisci(int rig, int col, int **mat)
{
int i,j;
gotoxy(30,2);
printf(" LEGGI ");
for(i=0;i<col;i++)
{for(j=0;j<rig;j++)
{gotoxy(25,6+(2*j));
printf("elemento[%d][%d] : ",j,i);
gotoxy(45+(3*i),6+(2*j));
scanf("%5d",&mat[j][i]);
gotoxy(25,6+(2*j));
printf(" ");
}
}
}
void stampa(int rig, int col, int **mat)
{
int i,j;
clrscr();
gotoxy(28,2);
printf(" VISUALIZZA ");
for(i=0;i<rig;i++)
{for(j=0;j<col;j++)
{gotoxy((j+1)*4+25,(i+1)*2+3);
printf("%d",mat[i][j]);
}
}
}
ho fatto questo programmino che alloca una matrice dinamica ma quando vado a farlo girare, dopo alcuni passaggi mi da errore nella memoria!!!!
Da che dipende? Come lo risolvo?
Grazie!!!
#include <stdio.h>
#include <conio.c>
#include <stdlib.h>
void inserisci(int,int,int **);
void stampa(int,int,int **);
int main (void)
{
int **mat;
int i,j;
int rig, col;
gotoxy(25,8);
printf("ALLOCAZIONE DINAMICA MATRICE");
getch();
clrscr();
printf("I caratteri ammessi nelle matrici sono soltanto numeri.\n\n");
printf("Premere un tasto per continuare...\n\n");
getch();
clrscr();
gotoxy(25,2);
printf(" SCEGLI DIMENSIONI ");
gotoxy(18,5);
printf("inserisci il numero delle righe : ");
gotoxy(62,5);
scanf("%d/n",rig);
gotoxy(18,8);
printf("inserisci il numero delle colonne : ");
gotoxy(64,8);
scanf("%d/n",col);
gotoxy(65,8);
getch();
mat = (int**) malloc(rig*sizeof(int*));
for(i=0;i<rig;i++)
{
mat[i] = (int*) malloc(col*sizeof(int));
}
inserisci(rig,col,mat);
stampa(rig,col,mat);
system("PAUSE");
}
void inserisci(int rig, int col, int **mat)
{
int i,j;
gotoxy(30,2);
printf(" LEGGI ");
for(i=0;i<col;i++)
{for(j=0;j<rig;j++)
{gotoxy(25,6+(2*j));
printf("elemento[%d][%d] : ",j,i);
gotoxy(45+(3*i),6+(2*j));
scanf("%5d",&mat[j][i]);
gotoxy(25,6+(2*j));
printf(" ");
}
}
}
void stampa(int rig, int col, int **mat)
{
int i,j;
clrscr();
gotoxy(28,2);
printf(" VISUALIZZA ");
for(i=0;i<rig;i++)
{for(j=0;j<col;j++)
{gotoxy((j+1)*4+25,(i+1)*2+3);
printf("%d",mat[i][j]);
}
}
}