Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-03-2011, 10:04   #1
kierlo
Member
 
L'Avatar di kierlo
 
Iscritto dal: Sep 2006
Messaggi: 244
[C++] Segmentation Fault anomala

Ciao a tutti sto iniziando un programma abbastanza semplice e ho definito la classe dei vettori in R^2 con solo due operazioni: somma e moltiplicazione per numero reale.

Il problema è che appena uso uno dei due operatori ( + e * in questo caso) mi va in segmentation fault e non riesco a capire perchè. Posto i 3 codici, se qualcuno ha tempo di aiutarmi mi fa un grande favore. Grazie mille.

Codice:
 file.h

#ifndef lumache_h
#define lumache_h

class Point
{
friend Point operator+ (const Point&,const Point&) ; //Somma fra vettori
friend Point operator* (const double &,const Point&)  ; // scalare per vettore

public:

//default ctor
Point (void);

//ctor
Point ( const double &x, const double &y);

//copy ctor
Point ( const Point & p);

//dtor
~Point();

//metodi:
void Read(); //legge

//operatori:
// Point& operator= (const Point & second) ;

private :
double x_;
double y_;
};
#endif
Codice:
 FILE .cc


#include "lumache.h"
#include "iostream"
using namespace std;
//ctor
Point::Point()
{
	x_=0.;
	y_=0.;
}
//ctor a valori
Point::Point ( const double &x, const double &y) //ctor
{
	x_=x;
	y_=y;
}
// copy ctor
Point::Point( const Point & p) 
{
	x_=p.x_;
	y_=p.y_;
}
//dtor
Point::~Point()
{
	delete &x_;
	delete &y_;
}

// METODI:
void Point::Read() //legge e stampa a schermo
{
	cout << "Il punto ha coordinate : ("<< x_<<","
	<<y_<<"). \n";
}

/**** OPERATORI *****/
//operatore uguale
/*Point& Point::operator=(const Point &original)
{
x_=original.x_;
y_=original.y_;

return *this;
}
*/
// Somsma vettori
Point operator+ (const Point &first ,const Point &second)
{
	return Point( first.x_+second.x_, first.y_+second.y_);
}
Point operator* (const double &alfa, const Point &vector)
 // moltiplicazione scalare-vettore
{
return Point(vector.x_ * alfa, vector.y_ * alfa);
}
Codice:
 FILE .cpp
#include<cstdlib>
#include<iostream>
#include"lumache.h"

using namespace std;

int main()
{
double x,y;

cout << "Inserisci coordinate punto : "<< endl;
cin >> x>> y;
Point r(x,y);
cout << "inserisci un numero : "<< endl;
double a;
cin >> a;
Point f(1,2);
Point g;
g = f+r;
g.Read();

exit(EXIT_SUCCESS) ;
}
Come vedete è abbastanza banale, ma non riesco a trovare l'errore. Ho seguito anche un libro di testo, ma ho problemi lo stesso.
__________________
Acer Timeline 5810t - Arch Linux 64 bit / Windows 7
kierlo è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2011, 14:01   #2
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
Nel distruttore tenti di liberare memoria che non hai mai allocato dinamicamente.
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2011, 11:12   #3
kierlo
Member
 
L'Avatar di kierlo
 
Iscritto dal: Sep 2006
Messaggi: 244
E come dovrei fare? Ci han sempre detto di fare così..
In ogni caso non dovrebbe esser la causa del problema , dato che va in segmentation fault se nel cpp metto g= f*a; mentre se non uso l'operatore * tutto va senza problemi..
__________________
Acer Timeline 5810t - Arch Linux 64 bit / Windows 7
kierlo è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2011, 11:19   #4
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
hai bisogno di deallocare esplicitamente la memoria allocata quando la allochi dinamicamente (cioè utilizzando gli operatori new o new[]), e non è il tuo caso, in pratica non devi far niente, e va bene il distruttore di default
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2011, 21:24   #5
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
Quote:
Originariamente inviato da kierlo Guarda i messaggi
E come dovrei fare? Ci han sempre detto di fare così..
In ogni caso non dovrebbe esser la causa del problema , dato che va in segmentation fault se nel cpp metto g= f*a; mentre se non uso l'operatore * tutto va senza problemi..
Internamente viene creato un oggetto di tipo Point e viene copiato in g. Poi il distruttore viene chiamato e tenta di deallocare memoria mai allocata.
Torav è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Anthropic ha un'AI che trova falle in Wi...
I 10 migliori sconti Amazon del weekend:...
Con un coupon scendono ancora: le super ...
Minimo storico per Samsung Galaxy S26 Ul...
Si è conclusa la missione lunare ...
EK Waterblock si arrende agli aumenti, i...
Geekbench si aggiorna: tutti i test con ...
Per la prima volta un computer quantisti...
Telecamere Reolink 4K su Amazon: Wi-Fi 6...
Anthropic vuole farsi i chip da sola? Co...
Il fondatore di Framework: il personal c...
JBL Live Flex 3 a 129€ su Amazon: ANC ad...
Come un uomo ha costruito un'azienda da ...
Multe fino a 400 euro anche se hai pagat...
Tapo lancia una valanga di offerte su Am...
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:42.


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