Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - allocare in memoria dinamicamente una matrice
Forum - C/C++ - allocare in memoria dinamicamente una matrice

Avatar
hack3r (Normal User)
Rookie


Messaggi: 38
Iscritto: 14/06/2009

Segnala al moderatore
Postato alle 19:58
Mercoledì, 29/07/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++

  1. char** mappa;
  2. mappa = new char*[r]; //r è il numero di righe
  3.     for(register int i = 0; i<=r; i++)
  4.         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
PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 20:23
Mercoledì, 29/07/2009
Non un compilatore qua.. comunque credo che l'errore sia nella prima riga:

Codice sorgente - presumibilmente Plain Text

  1. char* mappa;



quindi:

Codice sorgente - presumibilmente C/C++

  1. char* mappa;
  2. mappa = new char*[r]; //r è il numero di righe
  3.     for(register int i = 0; i<=r; i++)
  4.     mappa[i] = new char[c]; //c è il numero di colonne



credo sia lì l'errore.

PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 20:24
Mercoledì, 29/07/2009
Non un compilatore qua.. comunque credo che l'errore sia nella prima riga:

Codice sorgente - presumibilmente Plain Text

  1. char* mappa;



quindi:

Codice sorgente - presumibilmente C/C++

  1. char* mappa;
  2. mappa = new char*[r]; //r è il numero di righe
  3.     for(register int i = 0; i<=r; i++)
  4.     mappa[i] = new char[c]; //c è il numero di colonne



credo sia lì l'errore.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:28
Mercoledì, 29/07/2009
Il codice corretto e'

Codice sorgente - presumibilmente C/C++

  1. char **mappa;
  2.   mappa = new char*[r];     //r è il numero di righe
  3.     for(int i = 0; i<r; i++)
  4.       mappa[i] = new char[c];  //c è il numero di colonne



compilato correttamente con 4 compilatori diversi ...

PM Quote
Avatar
hack3r (Normal User)
Rookie


Messaggi: 38
Iscritto: 14/06/2009

Segnala al moderatore
Postato alle 10:25
Giovedì, 30/07/2009
grazie

mi è venuto in mente adesso va anche bene fare una cosa del tipo :


Codice sorgente - presumibilmente C/C++

  1. void*** mappa;
  2. mappa = new std::vector<void**>(r);
  3. for(register int i = 0; i<=r; i++)
  4.     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
PM Quote