|
|||||||
|
|
|
![]() |
|
|
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 08: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: 04:26.




















