mi sono chiesto il motivo per cui il codice di banale seguente produce un errore di segmentazione quando ritorno da main():Segmentation fault al ritorno dalla principale (codice molto breve e semplice, nessun array o puntatori)
//Produces "Error while dumping state (probably corrupted stack); Segmentation fault"
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
class Test
{
vector<int> numbers;
};
int main()
{
Test a;
ifstream infile;
cout << "Last statement..." << endl; // this gets executed
return 0;
}
È interessante notare che 1) se viene dichiarata solo una delle due variabili, non viene visualizzato l'errore, 2) se dichiaro una variabile vettoriale anziché un oggetto con un membro vettoriale, è tutto ok, 3) se io dichiarare un ofstream invece di un ifstream, di nuovo, tutto funziona bene. Qualcosa sembra essere sbagliato con questa combinazione specifica ...
Potrebbe essere un bug del compilatore? Io uso gcc versione 3.4.4 con cygwin.
Grazie per i suggerimenti in anticipo.
Gábor
gcc 3.4.4 è antico. Puoi provare con la serie 4? –
Ricordo di aver visto un bug report con qualcosa di simile, non riesco a ricordare esattamente però così non riesco a trovarlo. Ma sono abbastanza sicuro che questo è un bug oscuro che è stato risolto da allora. – GManNickG
Vieni, vieni. Ricordo quando 3.0 era all'avanguardia. Ora gcc 2.95/2.96 ora c'era un compilatore vecchio e stravagante. –