|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Sep 2002
Messaggi: 220
|
Errore nella memoria....
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]); } } }
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1..... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sinceramente non riesco a vedere erorri...
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Sep 2002
Messaggi: 220
|
No infatti gli errori nn ci sono......però quando faccio girare il programma mi da un errore tipo: errore.....all'istruzione......la memoria non poteva essere read.....ecc.....
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1..... |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Sep 2002
Messaggi: 220
|
Vuol dire che a te funziona perfettamente? Ti fa inserire i dati nella matrice e te la visualizza???
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1..... |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per ora non l'ho potuta provare, ma ho solo letto il codice...
Ora la provo... |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho trovato l'errore:
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); <----------- Mancavano le &... Comunque non ti abituare ad usare gotoxy, clrscr e le varie funzioni di conio.h... Non sono funzioni standard !!! |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Sep 2002
Messaggi: 220
|
grazie!!!!!!
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1..... |
![]() |
![]() |
![]() |
#9 | |
Junior Member
Iscritto dal: Mar 2004
Città: Gatteo Terra
Messaggi: 29
|
Quote:
sbaglio qualcosa? (nn devo usare la funzione di windows SetConsoleCursorPos) ciao grazie |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Usando gotoxy tu usi SetConsoleCursorPos, anche se indirittamente...
Il C standard non prevede funzioni di questo tipo... Qualsiasi implementazione di una funzione del genere è system dependent...quindi sei obbligato ad usare SetConsoleCursorPos (a meno che tu non voglia andare a scrivere nella memoria video, anche questo è ovviamente system dependent)... |
![]() |
![]() |
![]() |
#11 |
Bannato
Iscritto dal: Jun 2002
Città: Nella Rossa Socialista Romagna (gambettola(fc))
Messaggi: 2066
|
cionci, il problema non è che internamente usa le api win, è che uso visual studio 6, e gotoxy() (come clrscr) non esistono in <conio.h>...
Se poi volessi usare l'api di win, che richiede un handle, come lo trovo essendo la mia console automaticamente creata da windows? Al max io ho solo "stdout"... poi ricordati che sto usando C e non c++. grazie dell'aiuto... ah se nn l'avessi capito sono un amico di maicolgt ciao |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Le API Win32 sono tutte destinate principalmente all'uso in C...
Guarda queste funzioni (SetCursorPos in particolare): http://msdn.microsoft.com/library/en..._functions.asp Ecco un esempio di cme ottenere gli handle della console (GetStdHandle): http://msdn.microsoft.com/library/de..._functions.asp |
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Jun 2002
Città: Nella Rossa Socialista Romagna (gambettola(fc))
Messaggi: 2066
|
grazie mille comunque, ho trovato la soluzione (che è peraltro la stessa tua!)
grazie ancora! ciao |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:22.