when i run it in VS2008,it reads “can't read the memory ‘’0XCCCCC”,i think there is some error in the fuction “merge”,but how the deal with it ?Code:#include<iostream> using namespace std; const int DefaultSize = 100; class List { public: List(); List(size_t size); List(List &L); ~List(); bool insert(const int); void ClearList(); bool IsEmpty(); size_t ListLen(); int GetElem(size_t); void append(size_t,int);//在第i个位置插入数值 void Display(); void remove(size_t); List& merge(List &L); int FindElem(int elm); private: size_t MaxSize; size_t list_len; int *element; }; List::List() { MaxSize = DefaultSize; list_len = 0; element = new int[MaxSize]; } List::List(size_t size) { MaxSize = size; list_len = 0; element = new int[MaxSize]; } List::List(List &L) { list_len = 0; size_t L_size = L.ListLen(); MaxSize = 2*(list_len+L_size); for (size_t i = 0; i != L_size; ++i) { insert(L.GetElem(i)); } } List::~List() { delete []element; } bool List::insert(const int a) { if (list_len == MaxSize) return false; element[list_len++] = a; return true; } bool List::IsEmpty() { return list_len == 0; } int List::GetElem(size_t size) { if(size > list_len) throw runtime_error("error"); return element[size]; } void List::Display() { if(IsEmpty()) cout << "List is empty" << endl; else for (size_t i = 0; i < list_len; ++i) cout << element[i] << " "; } size_t List::ListLen() { return list_len; } void List::append(size_t i, int num) { if(i < 0 || i > MaxSize) { cout << "append invalid" << endl; } if (i == list_len) { this->insert(num); } else { for(size_t j = list_len-1; j != i-2; --j) { if(j == list_len-1) this->insert(element[j]); else element[j+1] = element[j]; } element[i-1] = num; } } void List::remove(size_t i) { if(i < 0 || i > list_len) { cout << "remove invalid" << endl; } else { for(size_t j = i; j != list_len+1; ++j) { element[j-1] = element[j]; } --list_len; } } List& List::merge(List &L) { if(L.IsEmpty()) return *this; size_t size = list_len + L.ListLen(); List merge_L(MaxSize+L.ListLen()); for (size_t i = 0; i != size; ++i) { if (i < list_len) { merge_L.insert(element[i]); } else { merge_L.insert(L.GetElem(i-list_len)); } } return merge_L; } int List::FindElem(int elm) { for (size_t i = 0; i != list_len; ++i) { if (element[i] == elm) return i+1; } return -1; } int main() { List l,m,n; l.insert(11); l.insert(12); m.insert(13); m.insert(0); List Q(l.merge(m)); cout << endl; }