0x54402fed (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突

void telList::add_record()//添加结点
{
telNode *new_rec_ptr; // Declare temporary pointer for the new node.
new_rec_ptr = new telNode; // Allocate memory for a new node and
char first[15];
char last[20];
char num[12];
// initialize pointer to point to it.
if(new_rec_ptr != NULL) // If no error allocating memory, get data
{ system("cls"); // and insert node.
// Get name and phone number from the user.

cin.ignore(20,'\n');
cout << "First Name: ";
cin.get(first,15);
new_rec_ptr->pData->SetName(first);

cin.ignore(20,'\n');
cout << "Last Name: ";
cin.get(new_rec_ptr->pData->GetLast(),20);
cin.ignore(20,'\n');
cout << "Phone Number: ";
cin.get(new_rec_ptr->pData->GetNum(),15);
cin.ignore(20,'\n');
insert_node(new_rec_ptr);
}
else // If error occurred allocating memory, display warning
{ // and do not create node.
cout << "WARNING: Memory error. New record cannot be added.\n";
}system("cls");
}

每次运行到cin.get(first,15);这一句时候就会出现 0x54402fed (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突 的错误,自己百度无果,求高手赐教!!
出现这个问题的原因是你在配哗烂类当中定义了一个指针类型的变量 , 然后没有在构造函数中对其初始化 , 之芦高后在使用到这个指针的时候就会提示这个错误

解决方法:
打开调试 , 然后运行到提示出错的时候看看出错的是哪一行代培漏码 , 找出当中使用到的那个指针(就是你之前某个类当中定义的指针变量) , 然后在对应的构造函数中将其初始化 , 注意初始化的时候要用 DataType *p = new DataType 这样的形式