04/03/11 15:24
pierotofy
Ad occhio, alla riga 87:
E' sbagliato; controlla l'aritmetica dei puntatori. Dovrebbe essere:
Altre cose che dovresti migliorare nel tuo codice:
1. Evita nomi come x1, matc, k. Non sono descrittivi. Usa nomi come matriceChar, numElementi, etc.
2. Una funzione non dovrebbe mai avere piu' di 7 parametri, perche' sono difficili da comprendere e ricordare.
3. Quando fai confronti come:
Devi prima assicurarti che quello spazio di memoria sia inizializzato! Chiamare malloc non lo fara' per te, e stai giocando con il fuoco se per concidenza il sistema operativo ti alloca un area di memoria dove tutto e' zero. Usa la funzione memset o bzero per inizializzare un area di memoria a zero prima di utilizzarla.
bufc[k]=matc[i][j];
E' sbagliato; controlla l'aritmetica dei puntatori. Dovrebbe essere:
bufc[k]=(*matc)[i][j];
Altre cose che dovresti migliorare nel tuo codice:
1. Evita nomi come x1, matc, k. Non sono descrittivi. Usa nomi come matriceChar, numElementi, etc.
2. Una funzione non dovrebbe mai avere piu' di 7 parametri, perche' sono difficili da comprendere e ricordare.
3. Quando fai confronti come:
if((*matc)[i][j] != 0)
Devi prima assicurarti che quello spazio di memoria sia inizializzato! Chiamare malloc non lo fara' per te, e stai giocando con il fuoco se per concidenza il sistema operativo ti alloca un area di memoria dove tutto e' zero. Usa la funzione memset o bzero per inizializzare un area di memoria a zero prima di utilizzarla.
Il mio blog: piero.dev