Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2007, 12:30   #1
Re Lothar
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 413
[c++]Liste dinamiche di stringhe

Volevo dei chiarimenti riguardo l'inclusione di stringhe in liste dinamiche, vi faccio vedere come ho fatto io:
Codice:
#include <iostream>
#include <string>
using namespace std;

struct lista {
	string nome;
	lista *next;
};

int main() {
	lista *p0;
	p0->nome = "prova";
	p0->next = NULL;
	cout<<p0->nome;
}
Se vado a compilare non mi da nessun errore, mentre se lo faccio partire mi da :
Segmentation fault (core dumped)

Dove è che sbaglio?
__________________
http://vimeo.com/kappaz
Re Lothar è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 12:43   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
manca la new della tua struct!
e ricordati anche la delete finale.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 12:44   #3
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Re Lothar Guarda i messaggi
Volevo dei chiarimenti riguardo l'inclusione di stringhe in liste dinamiche, vi faccio vedere come ho fatto io:
Codice:
#include <iostream>
#include <string>
using namespace std;

struct lista {
	string nome;
	lista *next;
};

int main() {
	lista *p0;
	p0->nome = "prova";
	p0->next = NULL;
	cout<<p0->nome;
}
Se vado a compilare non mi da nessun errore, mentre se lo faccio partire mi da :
Segmentation fault (core dumped)

Dove è che sbaglio?
Non hai inizializzato p0 .

"lista *p0 = new struct lista;"

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 13:32   #4
Re Lothar
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 413
Quote:
Originariamente inviato da vizzz Guarda i messaggi
manca la new della tua struct!
e ricordati anche la delete finale.
mio dio che sbadato!! grazie è vero...

comunque per un programma di prova come questo, dove l'unico obiettivo è stampare quel valore, serve ugualmente usare delete alla fine?
è vero che se non lo faccio la memoria rimane allocata anche quando lo chiudo?
__________________
http://vimeo.com/kappaz
Re Lothar è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 13:34   #5
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da Re Lothar Guarda i messaggi
mio dio che sbadato!! grazie è vero...

comunque per un programma di prova come questo, dove l'unico obiettivo è stampare quel valore, serve ugualmente usare delete alla fine?
è vero che se non lo faccio la memoria rimane allocata anche quando lo chiudo?
si, generi dei memory leak.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 13:35   #6
Re Lothar
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 413
Quote:
Originariamente inviato da vizzz Guarda i messaggi
si, generi dei memory leak.
caspita, questa cosa è micidiale, quindi in un ipotetico caso che io apra e chiuda tante volte il programma, alla fine riempio tutta la memoria??

e se la volessi liberare una volta chiuso sto programma c'è un modo o devo per forza riavviare?!?
__________________
http://vimeo.com/kappaz
Re Lothar è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 13:41   #7
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da Re Lothar Guarda i messaggi
caspita, questa cosa è micidiale, quindi in un ipotetico caso che io apra e chiuda tante volte il programma, alla fine riempio tutta la memoria??

e se la volessi liberare una volta chiuso sto programma c'è un modo o devo per forza riavviare?!?
nel tuo caso il memory leak all'uscita del programma dovrebbe essere gestito dal sistema operativo, che rende di nuovo disponibile l'area di memoria.
la cosa è ben diversa se il tuo programma resta in esecuzione e continua a mangiare memoria senza deallocarla, allora si potrebbe arrivare anche a schiantare una macchina
in altri linguaggi questo non è possibile perchè l'allocazione è gestita da un garbage collector.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 13:52   #8
Re Lothar
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 413
ok ho capito, grazie
__________________
http://vimeo.com/kappaz
Re Lothar è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2007, 14:00   #9
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Volevo dei chiarimenti riguardo l'inclusione di stringhe in liste dinamiche
Io userei i contenitori della STL senza re-inventare la ruota...
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Sciopero negli Apple Store italiani nel ...
vivo V70 5G a 461,70€: smartphone con fo...
Metal Slug Ultimate Collection annunciat...
Basta file di testo in chiaro: Android s...
Dalla CO2 al metano usando l'elettricità...
iOS 27 arriva il 14 settembre: ecco qual...
Ray-Ban Meta dentro il carcere: il video...
NVIDIA cambia la RTX 5070? Chip pi&ugrav...
Qwen3.8-27B gira su un portatile da 12GB...
Gemini lascia il browser e diventa un'ap...
EA e Savvy Games verso un unico colosso ...
Attenzione al falso SMS di BRT: dopo la ...
ASUS ROG Raikiri II Pro PC: controller d...
SteelSeries Aeon Pro: il primo controlle...
Il suo laptop lo stava 'cuocendo': bambi...
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: 10:18.


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