hack3r (Normal User)
Rookie
Messaggi: 38
Iscritto: 14/06/2009
|
lo so che su google e su questo forum ci sono tantissimi topic su come allocare dinamicamente una matrice, li ho letti, ma non ho risolto il mio problema e con questo codice :
Codice sorgente - presumibilmente C/C++ |
char** mappa;
mappa = new char*[r]; //r è il numero di righe
for(register int i = 0; i<=r; i++)
mappa[i] = new char[c]; //c è il numero di colonne
|
mi da i seguenti errori di compilazione :
cannot convert ‘char**’ to ‘char*’ in assignment
invalid conversion from ‘char*’ to ‘char’
p.s. uso GCC versione 4.3.3 ed Eclipse.
p.s. grzie mille per la vostra disponibilità, non so cosa fare
Ultima modifica effettuata da hack3r il 29/07/2009 alle 20:00 |
|
XBarboX (Member)
Guru
Messaggi: 945
Iscritto: 31/12/2008
|
Non un compilatore qua.. comunque credo che l'errore sia nella prima riga:
Codice sorgente - presumibilmente Plain Text |
quindi:
Codice sorgente - presumibilmente C/C++ |
char* mappa;
mappa = new char*[r]; //r è il numero di righe
for(register int i = 0; i<=r; i++)
mappa[i] = new char[c]; //c è il numero di colonne
|
credo sia lì l'errore. |
|
XBarboX (Member)
Guru
Messaggi: 945
Iscritto: 31/12/2008
|
Non un compilatore qua.. comunque credo che l'errore sia nella prima riga:
Codice sorgente - presumibilmente Plain Text |
quindi:
Codice sorgente - presumibilmente C/C++ |
char* mappa;
mappa = new char*[r]; //r è il numero di righe
for(register int i = 0; i<=r; i++)
mappa[i] = new char[c]; //c è il numero di colonne
|
credo sia lì l'errore. |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Il codice corretto e'
Codice sorgente - presumibilmente C/C++ |
char **mappa;
mappa = new char*[r]; //r è il numero di righe
for(int i = 0; i<r; i++)
mappa[i] = new char[c]; //c è il numero di colonne
|
compilato correttamente con 4 compilatori diversi ...
|
|
hack3r (Normal User)
Rookie
Messaggi: 38
Iscritto: 14/06/2009
|
grazie
mi è venuto in mente adesso va anche bene fare una cosa del tipo :
Codice sorgente - presumibilmente C/C++ |
void*** mappa;
mappa = new std::vector<void**>(r);
for(register int i = 0; i<=r; i++)
mappa.at(i) = new std::vector<void*>(c);
|
per "allocare" puntatori generici
grazie per le risposte a questa mia seconda domanda da niubbo
Ultima modifica effettuata da hack3r il 30/07/2009 alle 12:12 |
|