What line does it crash on?
You can find this out (a) by stepping through the code in a debugger or (b) liberally sprinkling printf() statements throughout the code (also use fflush so that the output is displayed immediately after the printf, otherwise you'll get very confused). For example:
void DoubleLinkedList::BuildList(char* stringarray, int arraylength)
printf("Back from destroy()\n");fflush(stdout);
Node *new_ptr, *last_ptr;
for (int i=0; i<arraylength; i++)
printf("In loop, i=%d\n",i);fflush(stdout);
new_ptr = new Node();
printf("Created new node at 0x%08x\n",new_ptr);fflush(stdout);
new_ptr->updateData( stringarray[i] );
printf("Back from updateData()\n");fflush(stdout);
...and so on
Then if, say, it printed "Created new node at..." but not "Back from updateData" then you know it crashed somewhere in Node::updateData(); and more debug code will need adding along the same lines as above to determine where it went wrong.
This is a technique I use a lot when developing software; I find it helps a lot to see what is really going on, rather than relying on what I think is going on (because usually what I think wouldn't lead to a crash, but if it does crash then what I think *must* be wrong).