|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2006
Messaggi: 264
|
[C++] Cancellare INTERO array...
Salve a tutti prima di esporvi il mio problema vi mostro il codice.
Codice:
do{ buffer_temp [j] = buffer[k]; cout <<buffer_temp[j]; j++;k++; if (buffer[k] == '\n') j=0; else if (buffer[k] == ';' || buffer[k] == '\n') { buffer_temp[j]= NULL; if (strcmp (ricerca, buffer_temp) == 0) { cout <<" Ci sono " <<++cont <<" parole uguali." <<'\n'; control = true;} delete(buffer_temp); j=0; } } while (k < x || control != true); Problema: mi incrementa il contatore solo se inserisco nella ricerca la prima parola dell'elenco. Premetto: la delete () ho letto che serve per liberare la memoria dell'array cioè crearlo vuoto come lo si trova al primo avvio del programma ed è proprio quello mi serve ma sembra non faccia quello che deve fare. Grazie dell'aiuto spero di essere stato esauriente. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La delete server par deallocare memoria dinamica. La delete va chiamata solo dopo che c'è stata una chiamata alla new.
L'uso di delete è errato. Si utilizza così: delete[] puntatore; o delete puntatore; Nel primo caso dealloca un array, nel secondo caso il solo elemento puntato. Per spiegare l'utilizzo di new e delete ci vorrebbe una libro...non posso certo spiegartelo su un post di un forum. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2006
Messaggi: 264
|
ah è vero...nn avevo pensato all'allocazione dinamica di variabili quindi all'utilizzo di puntatori...si giusto la delete serve a quello...
Comunque sia non avete risolto il mio problema.... ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fosse stato un contenitore template ti avrei consigliato il for_ech.
Non lo è, quindi ti consiglio: http://www.cplusplus.com/reference/c...string/memset/ |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Apr 2006
Messaggi: 264
|
ma alla fine fa una cosa d questo tipo memset
Codice:
for (x=0; x<y;x++) array[x] = cout.put('-'); |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
array[x] = cout.put('-');
Questa istruzione non ha senso. memset fa questo: Codice:
byte * bptr = (byte *)ptr; for(int i = 0; i < num; i++) bptr[i] = value; |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Apr 2006
Messaggi: 264
|
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ops, in effetti me la ricordavo diversa. E' un po' che non la uso.
Ultima modifica di cionci : 10-03-2010 alle 07:09. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:59.