Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-07-2005, 18:14   #1
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
[C++] allocare memoria dinamica per un oggetto

è possibile utilizzare un costruttore e un distruttore per allocare e liberare memoria dinamica?

se si, come si fa?

grazie
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 18:27   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da 19semplicemente
è possibile utilizzare un costruttore e un distruttore per allocare e liberare memoria dinamica?

se si, come si fa?

grazie
io non lo so, ma posso provare a passarti un link che ho trovato:

http://www.bo.cnr.it/corsi-di-inform...ldinamica.html
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 18:46   #3
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
il mio prof se non erro, ad un esame chiese di scrivere un costruttore e un distruttore per allocare e liberare memoria.. ma non so come fare.. ne da dove iniziare...
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 19:43   #4
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 19semplicemente
è possibile utilizzare un costruttore e un distruttore per allocare e liberare memoria dinamica?

se si, come si fa?

grazie

Non solo e' possibile, ma e' molto consigliato.

Stabilisci una regola per te stesso che recita: "l'oggetto che alloca della memoria o crea un altro oggetto deve anche occuparsi della loro distruzione".
fek è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 19:46   #5
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
e come si fa?! puoi aiutarmi?
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 19:51   #6
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 19semplicemente
e come si fa?! puoi aiutarmi?
Certo.

Codice:
class SimpleIntVector
{
 
public:

  SimpleIntVector(int size)
  {
     mData = new int[size];
  }

  ~SimpleIntVector()
  {
     delete[] mData;
  }

  int* GetData(void) const
  {
     return mData;
  }

private:
  int* mData;  
};
Ehm... GetData() non e' molto elegante, ma ho troppo sonno per scrivere il resto del codice

Perche' uso delete[] e non delete?
fek è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 19:56   #7
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
xkè è un vettore...
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 19:57   #8
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
e se fossero stringhe come sarebbe?
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 20:11   #9
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 19semplicemente
xkè è un vettore...
E' un esempio.

Quote:
Originariamente inviato da 19semplicemente
e se fossero stringhe come sarebbe?
Codice:
char* aString = new char[100];

// ...

delete[] aString;
fek è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 20:20   #10
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
ho scritto questo programmino.. e funziona.. però ho un dubbio..

scusa la domanda: ma a questo punto lui continua ad allocare ogni volta ch io creo un oggetto. cioè scrivere
Quote:
char *nome = new char[50];
significa dire al compilatore che sino a quando vive quell'oggetto lui deve allocare dinamicamente nome, giusto?


Quote:
#include <iostream>
#include <new>

using namespace std;

class prova{
private:
char* nome, *cognome;

public:

prova(char *n, char *c)
{
nome = new char[20];
cognome = new char[20];

nome = n;
cognome = c;

cout << nome << " " << cognome;
}

~prova()
{
delete[] nome;
delete[] cognome;
}


};

int main(){
prova uno("ciao", "mamma");

return 0;
}
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 20:31   #11
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
Quote:
Originariamente inviato da 19semplicemente
ho scritto questo programmino.. e funziona.. però ho un dubbio..

scusa la domanda: ma a questo punto lui continua ad allocare ogni volta ch io creo un oggetto. cioè scrivere

significa dire al compilatore che sino a quando vive quell'oggetto lui deve allocare dinamicamente nome, giusto?
quetso significa che appena crei un istanza della classe, le variabili membro sono allocate dinamicamente e devono essere necessariamente deallocato com ti ha detto fek (questo grazie al distruttore che hai fatto).
altro discorso poi ha l'allocazione dinamica di oggetti.
ciauz
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 20:33   #12
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
ah ti consiglio di usare la classe string quando implementi programmi con stringhe. è molto flessibile come classe e ti risparmi le complicazioni anche di leggibilità deggli array di char
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2005, 23:49   #13
19semplicemente
Senior Member
 
Iscritto dal: Feb 2004
Città: Bari
Messaggi: 373
non l'ho mai vista come classe.. come funziona?
19semplicemente è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2005, 11:37   #14
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
Quote:
Originariamente inviato da 19semplicemente
non l'ho mai vista come classe.. come funziona?
bhe è molto semplice da usare anche perchè ci sono dei metodi particolare per manipolare le stringhe.

http://www.msoe.edu/eecs/ce/courseinfo/stl/string.htm

vai qui c'è tutto quello che devi sapere
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Nikon 120-300mm f/2.8: moltiplicatore in...
Targhe personalizzate per auto e moto: c...
Redmi K100 ufficiale, con batteria da 10...
GTA 6, nuovo gameplay in South Park: Jas...
I guru dell'IA sono totalmente slegati d...
Diesel: scatta il taglio delle accise, m...
La pubblicità nell'AI Mode delle ricerch...
Mac Studio M5 Ultra al massimo: 512GB di...
Cyberpunk: il sequel potrebbe introdurre...
WhatsApp prepara una nuova sezione Pagam...
Google lancia Connected Apps Platform pe...
FWA, quanto costa e quali sono le presta...
Sony annuncia la PS5 Prism Collection: n...
Infineon investe 1,1 miliardi di euro in...
Microsoft: ricavi record a 92,3 miliardi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v