Stephen Touset wrote: >I'm working on a fairly large program for a class, and now every time I >run it, it segfaults. > >I've secluded the part that seems to cause the problems, and wrote a >small file called test.cc, which contains a minimal implementation fo >the code that brings up the segfault. It's attached. The code simply >opens a file then reads it until empty. > > Yep, you got two problems.
1. You're using a pointer that you haven't pointed anywhere. Repeat after me: I will always initialize a pointer to 0 (NULL). I will always set the pointer to 0 (NULL) after I delete my data. I will always initialize a pointer to 0 (NULL). I will always set the pointer to 0 (NULL) after I delete my data. I will always initialize a pointer to 0 (NULL). I will always set the pointer to 0 (NULL) after I delete my data. 2. You're trying to read 80 chars in to a space that only holds 1. (However the segfault is caused by the above problem.) Try this: #include <fstream> using namespace std; int main(void) { ifstream fin("test.cc"); char* str = 0; str = new char[81]; //80 chars + 1 for null character if (!fin.is_open()) { exit(1); } while (!fin.eof()) { fin.getline(str, 80); } fin.close(); //Not really necessary since it's the end of the program, but //good practice. delete [] str; str = 0; return 0; } HTH, Brent BTW, Don't you think this is a better topic for comp.lang.c++ then debian-users? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]