ciao!! sono totalmente nuova qua e non so molto... vado dritta al punto... devo scrivere un programma che carichi da file dei dati... non so perchè, se il problema è che non si riesce a trovare il file... (in tal caso cosa dovrei fare? ho provato a includere il file all'inizio ma non cambia niente...), comunque quando compilo mi viene fuori anche il problema "segmentation fault, core dumped"... ho cercato dappertutto per risolvere il problema ma non riesco... potreste aiutarmi? lo apprezzerei molto! grazie!

questo è il codice...

#include iostream
using namespace std;
#include fstream
#define N 150

int main (){

int i;
float primo;
float dati[N];
fstream ingresso;

ingresso.open("datimolla.dat", ios::in);

ingresso >> primo;
while(!ingresso.eof()) {
 dati[i] = primo;
 i++;
 ingresso >> primo;
}

cout << endl << primo << endl;
ingresso.close();
return 0;
}

chiesto 18 Gen '16, 11:45

annatogno's gravatar image

annatogno
2012

modificato 18 Gen '16, 19:51

corti-nico's gravatar image

corti-nico
891319


Ciao @annatogno,

In questo caso ti da segmentation fault, core dumped in quanto stai utilizzando la variabile i senza averla prima inizializzata. Dovresti infatti dichiararla così:

int i = 0;

Non inizializzandola, vai a scrivere su dati[i] e si genera un segfault in quanto vai ad accedere ad un'area di memoria esterna al processo.

coll. permanente

ha risposto 18 Gen '16, 19:57

corti-nico's gravatar image

corti-nico
891319

Arrivo tardi, ma il problema non è la non-inizializzazione di 'i', ma il fatto che non tutti i compilatori inizializzano automaticamente a 'zero' le variabili.

Inoltre nulla garantisce che nel file non ci siano più di N dati, caso nel quale il segfault è garantito.

Permettimi di aggiungere che ios::in è ridondante in quel contesto.

coll. permanente

ha risposto 14 Giu '17, 21:10

airordl's gravatar image

airordl
402245467

La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×29

domanda posta: 18 Gen '16, 11:45

domanda visualizzata: 453 volte

ultimo aggiornamento: 14 Giu '17, 21:10

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.