View Full Version : [C++]Allocazione dimanica della memoria
Energy++
01-07-2006, 09:18
Ragazzi non so come utilizzare l'allocazione dimanica della memoria
se io dichiaro un array di char
es:
char array[20]
questo contiene solo 20 caselle e se per esempio io faccio
una gets(array), potrņ memorizzare una parola di soli 20 caratteri.
Ora se io velessi memorizzare un numero di caratteri indefinito, come faccio??
Se faccio char *array = new char [20] non ho sempre specificato il numero di cassetti disponibili? :mc: :confused:
DanieleC88
01-07-2006, 10:11
Devi usare un puntatore a caratteri, quindi char *.
Inizializzandolo con "new char[20]" avresti un puntatore con 20 byte allocati, quindi il risultato sarebbe lo stesso (a meno che tu non usi realloc dopo e lo ingrandisci).
P.S.: ma non fai prima con std::string?
#include <string>
using namespace std;
int main(int argc, char * argv[])
{
string ciccio = "Stringa di lunghezza pare e piace a te.";
return 0;
}
Č rapido e indolore, fa tutto lui. E per convertirla come puntatore a caratteri, basta usare ciccio.c_str(). ;)
Energy++
01-07-2006, 20:45
Ok ho fatto come mi hai consigliato tu perņ adesso sorge un altro problema:
prima avevo questa struttura
struct
{
char nome[20], cognome[20];
}dati[10];
e la scrivevo su un file in questo modo:
for(int i=0; i<=10; i++)
stream.write(reinterpret_cast <char*> (&dati[i]), sizeof dati[i]);
adesso č in questo modo:
struct
{
string nome, cognome;
} dati[10];
perņ come faccio a scriverla sul file :( ? Nel modo che usavo prima mi da
errori :mc: :mc:
grazie dell'aiuto ciao
DanieleC88
02-07-2006, 11:40
Ah se devi scrivere su file, allora fai prima con array di caratteri a grandezza fissa, come quelle che avevi definito prima. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.